Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Таймер с МСК временем! (https://javascript.ru/forum/dom-window/39264-tajjmer-s-msk-vremenem.html)

hoax 22.06.2013 23:55

Таймер с МСК временем!
 
Помоги, уже замучался целый день сижу, есть таймер отбратного отчета до определенного времени

<script type="text/javascript">// <![CDATA[
var div = document.getElementById('time');
var timer = setInterval( function() {

var start = new Date(2013, 5, 25, 19);

var now = new Date();



var ms = start-now;
if(ms > 0) {
var d = (ms / 86400000^0)
var h = (ms / 3600000^0)%24;
var m = (ms / 60000^0)%60;
var s = (ms / 1000^0)%60;
var ds = (ms / 100^0)%10;
div.innerHTML = 'Событие начнется чере : '+
(d<10? '0'+d : d)+':'+
(h<10? '0'+h : h)+':'+
(m<10? '0'+m : m)+':'+
(s<10? '0'+s : s)+':'+
(ds<10? '0'+ds : s);
} else {
div.innerHTML = 'НАЧАЛО!'
clearInterval(timer);
}
}, 50 )
// ]]></script>



Но проблема в том, что он отображается МЕСТНО у всех.

С UTС пробовал, но как сделать всю дату, всмысле дату старта по UTC hours+4, и время сейчас UTC hours+4 не получается! Вообщем надо чтобы отчет до определенного времени был относительно МСК

hoax 23.06.2013 15:30

= (

Deff 23.06.2013 15:55

Добавить GMT+400
<div id=time></div>
<script type="text/javascript">

var start = new Date();
start.setTime(Date.parse("Jun 25 2013 19:00 GMT+400"));
var timer = setInterval( function() {

var div = document.getElementById('time');


var now = new Date();



var ms = start-now
//alert(ms)
if(ms > 0) {
var d = (ms / 86400000^0)
var h = (ms / 3600000^0)%24;
var m = (ms / 60000^0)%60;
var s = (ms / 1000^0)%60;
var ds = (ms / 100^0)%10;
div.innerHTML = 'Событие начнется через: '+
(d<10? '0'+d : d)+':'+
(h<10? '0'+h : h)+':'+
(m<10? '0'+m : m)+':'+
(s<10? '0'+s : s)+':'+
(ds<10? '0'+ds : s);
} else {
div.innerHTML = 'НАЧАЛО!'
clearInterval(timer);
}
}, 50 )
</script>

Угумс 19.07.2013 01:19

проблема с таймером
 
Здравствуйте у меня проблема с таймером не могли бы Вы помочь

var myTimer = function() {
var d= Date.now();
// var t=d.toLocaleTimeString();
var timerSeconds = Math.round((od - d)/1000);
if (timerSeconds >= 0) {
document.getElementById("timer").innerHTML= "Time left for this tour: "+timerSeconds;
setTimeout(arguments.callee, 1000);
}
};
myTimer()

таймер запускает время при входе в программу он работает но мне нужно что бы когда время ==0 одна функция прерывается и вызывает другую

Есть что нибудь такое наподобе if (myTimer==0) или document.getElementById("timer").timerSeconds то выполняется какое действие, помогите пожалуйста разобраться

hoax 17.08.2013 18:10

Цитата:

Сообщение от Deff (Сообщение 257979)
Добавить GMT+400
<div id=time></div>
<script type="text/javascript">

var start = new Date();
start.setTime(Date.parse("Jun 25 2013 19:00 GMT+400"));
var timer = setInterval( function() {

var div = document.getElementById('time');


var now = new Date();



var ms = start-now
//alert(ms)
if(ms > 0) {
var d = (ms / 86400000^0)
var h = (ms / 3600000^0)%24;
var m = (ms / 60000^0)%60;
var s = (ms / 1000^0)%60;
var ds = (ms / 100^0)%10;
div.innerHTML = 'Событие начнется через: '+
(d<10? '0'+d : d)+':'+
(h<10? '0'+h : h)+':'+
(m<10? '0'+m : m)+':'+
(s<10? '0'+s : s)+':'+
(ds<10? '0'+ds : s);
} else {
div.innerHTML = 'НАЧАЛО!'
clearInterval(timer);
}
}, 50 )
</script>

не работает, люди с других поясов жалуются .....
что у них таймер на нуле раньше положенного времени

hoax 09.02.2014 22:14

врзвращаясь к этой проблеме спустя время, ее так и не решил)
как еще можно манипулировать с переменными чтобы получить одинаковое время отчета по МСК для всех поясов?

рони 09.02.2014 22:40

hoax,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<div id=time></div>
<script type="text/javascript">
var start = new Date();
start.setTime(Date.parse("Feb 10 2014 03:00"));
var m = start.getMinutes() -240 - start.getTimezoneOffset();
start.setMinutes(m, 0, 0);
var timer = setInterval( function() {
var div = document.getElementById('time');
var now = new Date();
var ms = start-now
//alert(ms)
if(ms > 0) {
var d = (ms / 86400000^0)
var h = (ms / 3600000^0)%24;
var m = (ms / 60000^0)%60;
var s = (ms / 1000^0)%60;
var ds = (ms / 100^0)%10;
div.innerHTML = 'Событие начнется через: '+
(d<10? '0'+d : d)+':'+
(h<10? '0'+h : h)+':'+
(m<10? '0'+m : m)+':'+
(s<10? '0'+s : s)+':'+
(ds<10? '0'+ds : s);
} else {
div.innerHTML = 'НАЧАЛО!'
clearInterval(timer);
}
}, 50 )
</script>
</body>
</html>

hoax 15.02.2014 11:48

спасибо!


Часовой пояс GMT +3, время: 00:19.