Таймер обратного отсчета, который принимает относительную метку времени клиента (UTC) - PullRequest
0 голосов
/ 02 ноября 2018

Я знаю, что здесь есть множество тем, касающихся подобных вещей, но я не могу понять это.

У меня есть таймер обратного отсчета в веб-приложении .Net, который импортирует жестко запрограммированную дату, скажем, <add key="CountdownTimerUTC" value = "Nov 22, 2018 18:00:00"/> из web.config в мой javascript. Это дата, на которую я рассчитываю. Это моя «тогда» переменная. Теперь мне нужна моя переменная "сейчас", чтобы сравнить ее с оставшимися днями, часами, минутами и секундами. Так что then - now = difference. Разница в том, что показывает мой отсчет.

Мои проблемы возникают, когда javascript устанавливает значение переменной "now" в javascript, которое основано на дате / времени клиента. Это значение теперь изменяется в зависимости от того, где находится клиентский компьютер. Таким образом, «сейчас» в Нью-Йорке будет отличаться от «сейчас» в Бразилии, что, в свою очередь, будет показывать другой обратный отсчет. Мне нужно, чтобы обратный отсчет был одинаковым, независимо от того, где находится клиентский компьютер, потому что время между настоящим моментом и датой обратного отсчета равно времени, независимо от того, где я нахожусь в мире.

Это то, что у меня есть, и оно близко к тому, что я хочу, но не совсем там.

var nowClient = new Date().toUTCString();
var nowString = nowClient.split(" ");
var nowParsed = nowString[2] + " " + nowString[1] + " " + nowString[3] + " " + nowString[4];

var nowUtc = new Date(nowParsed);
var thenUtc = new Date(countdown.then !== null ? countdown.then : new Date("Nov 22, 2018 18:00:00"));
var difference = thenUtc - nowUtc;
...