Преобразование временных меток Unix в местное время пользователя с помощью moment.js

avatar
user1444027
8 августа 2021 в 16:01
244
2
0

У меня есть список международных событий с датами их начала, хранящимися в формате временных меток unix. Я хотел бы преобразовать их в местное время пользователя, используя moment.js. Я пытаюсь сделать это, используя:

var example_utc = 1628946000;

// GMT: Saturday, August 14, 2021 1:00:00 PM
// Your time zone: Saturday, August 14, 2021 2:00:00 PM GMT+01:00 DST
// Relative: In 6 days

moment(example_utc);

Однако это возвращает:

Mon Jan 19 1970 20:19:37 GMT+0000

Есть идеи, что я делаю неправильно?

Источник

Ответы (2)

avatar
Sha'an
8 августа 2021 в 16:37
0

Прежде всего, вам нужно получить его как unix, так и momentJs правильно. Затем вы можете преобразовать его как localDate с помощью .local() или автоматически (ситуативно):

var example_utc = 1628946000;
var momentStyle = moment.unix(example_utc);
var localDate = moment(momentStyle).local();
alert(localDate); // Sat Aug 14 2021 17:00:00 GMT+0400

Также обратите внимание, что если ваш исходный ввод содержит смещение часового пояса, например +00:00 или Z, вам не нужно использовать .utc() или .local().

var example_utc = 1628946000;
var localDate = moment.unix(example_utc);
alert(localDate); // Sat Aug 14 2021 17:00:00 GMT+0400
avatar
Harsh Saini
8 августа 2021 в 16:05
1

Умножьте отметку времени UNIX на 1000, чтобы преобразовать ее в миллисекунды, поскольку javascript Date работает с миллисекундами refer

var example_utc = 1628946000;

moment(example_utc*1000); // Saturday, August 14, 2021 1:00:00 PM