Преобразование миллисекунд UTC в центральное время в javascript

У нас есть набор системных событий, которые хранятся в базе данных с отметкой времени в миллисекундах в формате UTC. Чтобы получить нужный мне JSON, мне просто нужно отправить такой запрос.... http://xxx.xxx.xxx/gimmeJson?starttime=MILLISECONDS&endtime=MILLISECONDS

Таким образом, когда событие произошло в 23:00 CST, оно было преобразовано в миллисекундный эквивалент UTC и сохранено.

У меня большая проблема, когда я думаю о миллисекундах, потому что я думаю об этом как о часовых поясах.

Я видел вопрос SO, подобный этому здесь: Как преобразовать дату и время UTC/GMT в CST в Javascript? (не локально, CST всегда) и это было близко, но не совсем там.

Если временные метки хранятся в миллисекундах UTC, как я могу запросить их для эквивалента центрального времени? Под этим я подразумеваю, что мой босс хочет отчет обо всех событиях, которые произошли в центральном часовом поясе, но я должен запросить базу данных, в которой эти метки времени хранятся в миллисекундах UTC.

В конечном итоге мне нужно придумать ** какой-то ** номер для отправки по URL-адресу для UTC MILLISECONDS, который эквивалентен, скажем, «24 сентября, 12:00:00 по центральному времени». Что усугубляет эту проблему, так это то, что веб-служба довольно новая и, как было показано, немного глючит, поэтому мне нужно убедиться, что я прав.

// construct a moment object with Central time input
var m = moment('2015-01-01 00:00:00').format('x');

// convert using the TZDB identifier for GMT
m.tz('Europe/London');

// format output however you desire
var s = m.format("x");

Кто-нибудь может подтвердить, что я на правильном пути? Большое, большое спасибо заранее.


person Jane Wilkie    schedule 05.10.2016    source источник


Ответы (1)


В UTC или любом другом часовом поясе нет такой вещи, как отметка времени в миллисекундах. Отметки времени в миллисекундах всегда от 1970-01-01T00:00:00.000Z; они не зависят от зоны.

Чтобы получить отметку времени для нужной зоны, просто создайте Date и используйте Date.prototype.getTime< /а> метод

var cstTime = new Date('2016-09-24T12:00:00-06:00');
console.log('CST in ISO 8601:', cstTime.toISOString());
console.log('CST timestamp:', cstTime.getTime());

var localTime = new Date();
console.log('Local time in ISO 8601:', localTime.toISOString());
console.log('Local timestamp:', localTime.getTime());
                       

person Phil    schedule 06.10.2016