Необходимо получить локальную UNIX метку времени, используя Момент. js вместо UT C Метка времени - PullRequest
0 голосов
/ 11 апреля 2020

Я хочу преобразовать локальную дату и время в unix метку времени (секунды), используя момент js. Я использовал следующие формулы: -

moment (). unix () moment (new Date ()). Format ("X")

Пример: -

a) Время IST - 11 апреля 2020 г. 11:45, UNIX Метка времени - 1586605500 (в секундах)

b) UT C Время - 11 апреля 2020 г. 06:15, UNIX Метка времени - 1586585700 (в секундах)

Я ожидаю получить результат а) как Unix метка времени, но вместо этого я получаю б). Как решить эту проблему простым способом, используя Момент JS?

1 Ответ

3 голосов
/ 11 апреля 2020

Нет такой вещи как "местная Unix отметка времени". Отметка времени Unix измеряет количество секунд 1 , начиная с эпохи Unix, которая определяется как полночь 1 января 1970 года UT C.

Это означает, что в любой данный момент времени текущая отметка времени Unix одинакова во всем мире. Если бы люди из двух разных стран вели разговор, они оба согласились бы с «текущей Unix меткой времени», даже если их часы показывали разное время.

Так что результат b в вашем вопросе уже верен: когда в 11:45 утра 11 апреля 2020 года в Индии Unix отметка времени была 1586585700. Все, что ожидает 1586605500, не ожидает отметку Unix. Вместо того, чтобы пытаться предоставить результат, ожидаемый этим кодом, я бы исправил этот код, ожидая отметку времени Unix или заставив ожидать локальное значение в какой-то другой форме.


1 По крайней мере, традиционно. Идея «отметки времени Unix, но в миллисекундах, или микросекундах, или наносекундах» имеет смысл и не меняет остальную часть этого ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...