Нужен таймер
Нужен таймар для сайта который будет одщитавать время до 7:00 затем до 15:00 и до 23:00 и снова 7:00 по московськом времени.:help:
Зараня очень признательный за помощь. |
Woldor, таймер по местному времени
:cray: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body><div id = 'show'></div> <script type="text/javascript"> function two(a) { return (9 < a ? "" : "0") + a } function formatTime(a) { a = Math.floor(a / 1E3); var c = Math.floor(a / 60), d = Math.floor(c / 60); a %= 60; c %= 60; return two(d) + " : " + two(c) + " : " + two(a) } function Time() { var a = new Date, c = [7, 15, 23, 7], d = [], e = a.getDate() + 1, b = 0; for (; b < c.length; b++) a.setHours(c[b], 0, 0, 0), 3 == b && a.setDate(e), d[b] = a.getTime(); for (b = 0; b < c.length && !(a = d[b] - (new Date).getTime(), 0 < a); b++); document.getElementById("show").innerHTML = "До " + c[b] + " осталось " + formatTime(a); window.setTimeout(Time, 1E3) }; Time() </script> </body> </html> |
а под московское время подогнать можна а то эта имеет бальшое значения
|
Цитата:
|
а что отвичает за поточное время
|
Цитата:
|
вот моё изобретение, не много корявое, но работает, 1-ым параметром подаешь 1-ую дату до которой надо отсчитать, далее 2-ым параметром в массиве подаем, другие даты, после 1-ой, повторяюсь код сырой, можно упростить, просто лень, рабоатет и ладно=)
function timer( objname, mysqldate, attr, b_next ){ //var y, m, d, h=0, i=0, s=0; h=0; i=0; s=0; comment_start = attr.start!=undefined ? attr.start : ''; comment_end = attr.end !=undefined ? attr.end : mysqldate+' - эта дата уже прошла!'; if( ymd = /^(\d\d\d\d)-(\d\d)-(\d\d)/.exec(mysqldate) ){ y = ymd[1]; m = Number(ymd[2])-1; d = ymd[3]; //alert('y=>'+y+' m=>'+m+' d=>'+d); if( his = /(\d\d):(\d\d):(\d\d)$/.exec(mysqldate) ){ h = his[1]; i = his[2]; s = his[3]; //alert('h=>'+h+' i=>'+i+' s=>'+s); } } else { $( objname ).text(mysqldate+ '- не соответствует формату YYYY-MM-DD [H:i:s]'); return; } finishday = new Date( y, m, d, h, i, s ); endTS = finishday.getTime(); var intervalid = setInterval(function(){ now = new Date(); totalRemains = (endTS - now.getTime()); if (totalRemains>1){ RemainsSec=(parseInt(totalRemains/1000)); RemainsFullDays=(parseInt(RemainsSec/(24*60*60))); secInLastDay=RemainsSec-RemainsFullDays*24*3600; RemainsFullHours=(parseInt(secInLastDay/3600)); if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours}; secInLastHour=secInLastDay-RemainsFullHours*3600; RemainsMinutes=(parseInt(secInLastHour/60)); if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes}; lastSec=secInLastHour-RemainsMinutes*60; if (lastSec<10){lastSec="0"+lastSec}; $( objname ).html( comment_start + (RemainsFullDays ? "<span>"+RemainsFullDays+"дн.</span> " :"")+RemainsFullHours+"ч. "+RemainsMinutes+"м. "+lastSec+"с."); } else { clearInterval(intervalid); if(b_next && typeof b_next==='object'){ next = b_next[3]!=undefined ? b_next[3] : ''; timer(b_next[0], b_next[1], b_next[2], next); } else { $( objname ).text( comment_end ); } } },1000); } timer( '.timer', "<?php echo date('Y-m-d 12:00:00');?>", {start: 'До обеда осталось: '},[ '.timer', "<?php echo date('Y-m-d 13:15:00');?>", {start: 'Все бежим на ОБЕД! До конца обеда осталось: '},[ '.timer', "<?php echo date('Y-m-d 17:00:00');?>", {start: 'До конца рабочего дня осталось: ', end: 'Всё, хорош работать, бегите домой!'} ] ] ); |
Цитата:
Вариант таймера с коррекцией на московское время... <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body><div id = 'show'></div> <script type="text/javascript"> function two(a) { return (9 < a ? "" : "0") + a } function formatTime(a) { a = Math.floor(a / 1E3); var c = Math.floor(a / 60), d = Math.floor(c / 60); a %= 60; c %= 60; return two(d) + " : " + two(c) + " : " + two(a) } function Time() { var a = new Date, c = [7, 15, 23, 7], d = [], e = a.getDate() + 1, b = 0, m = -240 - a.getTimezoneOffset(); for (; b < c.length; b++) a.setHours(c[b], m, 0, 0), 3 == b && a.setDate(e), d[b] = a.getTime(); for (b = 0; b < c.length && !(a = d[b] - (new Date).getTime(), 0 < a); b++); document.getElementById("show").innerHTML = "До " + c[b] + " : 00 по Москве осталось " + formatTime(a); window.setTimeout(Time, 1E3) }; Time() </script> </body> </html> правильность работы скрипта проверьте кому нетрудно с немосковским временем. |
работает идеально большое спасибо
еще пожалуйста отметь места которое нужно изменить при переходе на летнее время |
Цитата:
var a = new Date; alert(a.getTimezoneOffset()) |
Часовой пояс GMT +3, время: 00:50. |