26.03.2019, 09:06
|
Аспирант
|
|
Регистрация: 22.03.2019
Сообщений: 47
|
|
Сообщение от laimas
|
ddro3doff, уясните простую вещь (и хорошо бы для закрепления самому "пощупать" скриптом, что сие означает) - сервер возвращает временную зону западнее UTC как отрицательное число, а восточнее положительные. А клиент эти значения возвращает с противоположным знаком.
Отдавая страницу клиенту отдайте временную зону сервера, и суммируйте с временной зоной клиента:
var tZ = <?=date('Z') * 1000?> + (new Date).getTimezoneOffset() * 60 * 1000;
Вот на это нужно корректировать создание даты везде в скрипте, и все будет работать по времени сервера, по какому бы часовому поясу он не работал.
|
Спасибо за ответ. А как сделать что бы время бралось по МСК а не по серверу?
|
|
26.03.2019, 09:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
А ваш сервер что по времени Якутска работает? Вы можете временную зону на севере установить любую. Можете и вообще ничего не передавать клиенту, на нем корректируйте сразу на московское время.
|
|
26.03.2019, 10:48
|
Аспирант
|
|
Регистрация: 22.03.2019
Сообщений: 47
|
|
Сообщение от laimas
|
А ваш сервер что по времени Якутска работает? Вы можете временную зону на севере установить любую. Можете и вообще ничего не передавать клиенту, на нем корректируйте сразу на московское время.
|
У меня сервер работает по Украинскому времени + перевод часов. А мне нужно отчет времени от мск. Не злитесь , я в JS практически ничего не понимаю. Можете помочь мне с кодом?
https://jsfiddle.net/jo9ch453/
|
|
26.03.2019, 10:59
|
Аспирант
|
|
Регистрация: 22.03.2019
Сообщений: 47
|
|
|
|
26.03.2019, 11:58
|
Аспирант
|
|
Регистрация: 22.03.2019
Сообщений: 47
|
|
Не работает( Время считает от компьютерного времени.
Вот пример http://vsmislie.ru/sinhron/
|
|
26.03.2019, 12:16
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
ddro3doff, если я правильно вас понял, то проблема в кривом времени толи сервера, толи клиента.
Можно сделать так (не тестировал):
<head>
<script>//Этот скрипт нужно вставить как можно раньше в страницу
var SERVER_MOSCOW_TIMESTAMP=<?php echo time()-date('Z'); ?>*1000+180*60*1000;
setTimeout(function tic(){
SERVER_MOSCOW_TIMESTAMP+=1000;
setTimeout(tic,1e3);
},1e3);
</script>
</head>
<body>
<script>
//пример получения Московского серверного времени
var moscowTime=new Date(SERVER_MOSCOW_TIMESTAMP);
</script>
</body>
|
|
26.03.2019, 13:17
|
Аспирант
|
|
Регистрация: 22.03.2019
Сообщений: 47
|
|
Сообщение от Nexus
|
ddro3doff, если я правильно вас понял, то проблема в кривом времени толи сервера, толи клиента.
Можно сделать так (не тестировал):
<head>
<script>//Этот скрипт нужно вставить как можно раньше в страницу
var SERVER_MOSCOW_TIMESTAMP=<?php echo time()-date('Z'); ?>*1000+180*60*1000;
setTimeout(function tic(){
SERVER_MOSCOW_TIMESTAMP+=1000;
setTimeout(tic,1e3);
},1e3);
</script>
</head>
<body>
<script>
//пример получения Московского серверного времени
var moscowTime=new Date(SERVER_MOSCOW_TIMESTAMP);
</script>
</body>
|
В моём коде заменил
var today = new Date();
на
var today =new Date(SERVER_MOSCOW_TIMESTAMP);
Между head первым скриптом прописал
<script>//Этот скрипт нужно вставить как можно раньше в страницу
var SERVER_MOSCOW_TIMESTAMP=<?php echo time()-date('Z'); ?>*1000+180*60*1000;
setTimeout(function tic(){
SERVER_MOSCOW_TIMESTAMP+=1000;
setTimeout(tic,1e3);
},1e3);
</script>
Не работает. Время вообще не выводится.
|
|
26.03.2019, 13:26
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Сообщение от ddro3doff
|
Не работает. Время вообще не выводится.
|
Ну так консоль откройте и посмотрите в чем причина.
В пятой строке "unexpected token <", открываем исходники страницы, смотрим пятую строку и что видим?
php-код не исполнился, неправильно вставили.
|
|
26.03.2019, 13:32
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от ddro3doff
|
SERVER_MOSCOW_TIMESTAMP=<?php echo time()-date('Z'); ?>*1000+180*60*1000
|
Нифига себе, а зачем?
Можно указать на клиенте переменную - московскую часовую зону +3. Ибо опять, видимо, будет "революция" с переводом стрелок, что ранее отменили. А значит придется ручками "Москву переводить".
А что в итоге вы хотите получить. Ну хорошо, таймер или чего-то, это не проблема, но ведь дата/время сервера то вообще не то будет. А в чем тогда смысл?
Последний раз редактировалось laimas, 26.03.2019 в 13:37.
|
|
|
|