使用 moment.js 将 Unix 时间戳转换为用户本地时间

Convert Unix timestamps to user's local time using moment.js

我有一个国际赛事列表,其开始日期以 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);

然而,这个returns:

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

知道我做错了什么吗?

将 UNIX 时间戳乘以 1000 以将其转换为毫秒,因为 javascript Date 以毫秒计算 refer

var example_utc = 1628946000;

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

首先,您需要以正确的方式将它作为 unix 作为 momentJs。然后您可以使用 .local() 或自动(情况)将其转换为 localDate:

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