Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.03.2019, 09:06
Аспирант
Отправить личное сообщение для ddro3doff Посмотреть профиль Найти все сообщения от ddro3doff
 
Регистрация: 22.03.2019
Сообщений: 47

Сообщение от laimas Посмотреть сообщение
ddro3doff, уясните простую вещь (и хорошо бы для закрепления самому "пощупать" скриптом, что сие означает) - сервер возвращает временную зону западнее UTC как отрицательное число, а восточнее положительные. А клиент эти значения возвращает с противоположным знаком.

Отдавая страницу клиенту отдайте временную зону сервера, и суммируйте с временной зоной клиента:

var tZ = <?=date('Z') * 1000?> + (new Date).getTimezoneOffset() * 60 * 1000;


Вот на это нужно корректировать создание даты везде в скрипте, и все будет работать по времени сервера, по какому бы часовому поясу он не работал.
Спасибо за ответ. А как сделать что бы время бралось по МСК а не по серверу?
Ответить с цитированием
  #12 (permalink)  
Старый 26.03.2019, 09:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А ваш сервер что по времени Якутска работает? Вы можете временную зону на севере установить любую. Можете и вообще ничего не передавать клиенту, на нем корректируйте сразу на московское время.
Ответить с цитированием
  #13 (permalink)  
Старый 26.03.2019, 10:48
Аспирант
Отправить личное сообщение для ddro3doff Посмотреть профиль Найти все сообщения от ddro3doff
 
Регистрация: 22.03.2019
Сообщений: 47

Сообщение от laimas Посмотреть сообщение
А ваш сервер что по времени Якутска работает? Вы можете временную зону на севере установить любую. Можете и вообще ничего не передавать клиенту, на нем корректируйте сразу на московское время.
У меня сервер работает по Украинскому времени + перевод часов. А мне нужно отчет времени от мск. Не злитесь , я в JS практически ничего не понимаю. Можете помочь мне с кодом?
https://jsfiddle.net/jo9ch453/
Ответить с цитированием
  #14 (permalink)  
Старый 26.03.2019, 10:58
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

ddro3doff, получил московское время: https://jsfiddle.net/od4cx0fb/
Ответить с цитированием
  #15 (permalink)  
Старый 26.03.2019, 10:59
Аспирант
Отправить личное сообщение для ddro3doff Посмотреть профиль Найти все сообщения от ddro3doff
 
Регистрация: 22.03.2019
Сообщений: 47

Сообщение от Nexus Посмотреть сообщение
ddro3doff, получил московское время: https://jsfiddle.net/od4cx0fb/
Огромное спасибо!
Ответить с цитированием
  #16 (permalink)  
Старый 26.03.2019, 11:58
Аспирант
Отправить личное сообщение для ddro3doff Посмотреть профиль Найти все сообщения от ddro3doff
 
Регистрация: 22.03.2019
Сообщений: 47

Сообщение от Nexus Посмотреть сообщение
ddro3doff, получил московское время: https://jsfiddle.net/od4cx0fb/
Не работает( Время считает от компьютерного времени.
Вот пример http://vsmislie.ru/sinhron/
Ответить с цитированием
  #17 (permalink)  
Старый 26.03.2019, 12:16
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 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>
Ответить с цитированием
  #18 (permalink)  
Старый 26.03.2019, 13:17
Аспирант
Отправить личное сообщение для ddro3doff Посмотреть профиль Найти все сообщения от ddro3doff
 
Регистрация: 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>


Не работает. Время вообще не выводится.
Ответить с цитированием
  #19 (permalink)  
Старый 26.03.2019, 13:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от ddro3doff
Не работает. Время вообще не выводится.
Ну так консоль откройте и посмотрите в чем причина.
В пятой строке "unexpected token <", открываем исходники страницы, смотрим пятую строку и что видим?
php-код не исполнился, неправильно вставили.
Ответить с цитированием
  #20 (permalink)  
Старый 26.03.2019, 13:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Handlebars + React.js: как заставить работать? The_Nobody Библиотеки/Тулкиты/Фреймворки 4 29.09.2015 12:24
Как заставить работать среди php(wp) Takun Общие вопросы Javascript 0 10.12.2014 16:47
Новичок, подскажите как оптимизировать скрипт. asdds AJAX и COMET 3 05.12.2014 23:29
как заставить работать часы d4a1 Общие вопросы Javascript 2 04.08.2011 21:29
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40