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

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

Т. е. вам нужно, чтобы время клиента было точным!

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

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


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


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

Зачем вы меняте timestamp? У вас получилось по пятницам в 16 в Москве (GMT+3), или в 19, но в Бангладеше (GMT+6), (это одно и тоже время!)

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

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