Показать сообщение отдельно
  #26 (permalink)  
Старый 26.03.2019, 13:50
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Каждая ОС имеет механизм, который синхронизирует локальные часы с более надежным источником хронометража (таким как атомные часы NIST). Если это еще не сделано, настройте сервер для синхронизации его часов с одним из этих источников. В 99% у клиентов будет правильное время. Если вам нужна 100% точность, то продолжайте читать!

Сообщение от ddro3doff
В принципе все скрипты работают как нужно, токо по времени юзера, а мне нужно что бы таймер отсчитывал от серверного времени или от какого нибудь стороннего сервера.И вызывал всплывающие она тоже от серверного времени
Т. е. вам нужно, чтобы время клиента было точным!

Вы можете получить с сервера времени(или со своего сервера) метку времени (UTC timestamp) и её передать в конструктор Date. Так вы получите точное время на тот момент. Пусть оно хранится в константе serverTime. Вам сразу же надо создать константу со временем на устройстве пользователя, например, пусть это будет clientTime.

Вычислив разницу между двумя этими временами, вы узнаете на сколько отличается время клиента от точного!
const now = serverDate.getTime() - clientDate.getTime();


Для того, чтобы получать впоследствии точное время, вам нужно прибавлять эту разницу ко времени клиента
const date = new Date(Date.now() + now);


Сообщение от laimas
Сервер и клиент возвращают смещение с противоположными знаками
Какой ужас! Я всё ни как не пойму, зачем вам вообще Лондон сдвигать в Москву...

Сообщение от Nexus
ddro3doff, получил московское время: https://jsfiddle.net/od4cx0fb/
Зачем вы меняете timestamp? У вас получилось по пятницам в 16 в Москве (GMT+3), или в 19, но в Бангладеше (GMT+6), (это одно и тоже время!) UPD[И от того, с какого часового пояса смотреть тоже отличается!]

И зачем вы пишете так, как будто у каждой временной зоны существует свой собственный timestamp?

ddro3doff, нужно получить timestamp, когда начинается мероприятие(назовём его eventDate), вычислив eventDate - date вы получите, сколько времени осталось до события. Вот график, а вот решение https://jsfiddle.net/5ts70kr2/ (Там время берётся со стороннего сервера, но вы можете брать со своего!)

Последний раз редактировалось Malleys, 26.03.2019 в 14:07.
Ответить с цитированием