使用时刻将Unix时间戳转换为用户的本地时间.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);
但是,这返回:
Mon Jan 19 1970 20:19:37 GMT+0000

你知道我做错了什么吗?

将UNIX时间戳乘以1000以将其转换为毫秒,因为javascriptDate工作在毫秒上参考

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

首先,您需要以unix as momentJs的正确方式获取它。然后,您可以使用.local()或automatic(情景)将其转换为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

最新更新