将unix时间戳转换为时刻js在chrome中无法正常工作

时间:2017-08-07 20:49:25

标签: javascript google-chrome firefox momentjs unix-timestamp

此代码:

let obj = moment.unix(1459382400).utc();

在Firefox 54中运行良好,但在Chrome 59.0.3071.109中运行不正常。在Firefox中它返回日期2016-03-31T00:00:00.000Z这是正确的日期,但在Chrome中它返回2016年3月30日星期三20:00:00 GMT-0400(CDT),这是正确日期的前一天。

我一直在寻找解决方案失败。 1459382400 unix时间戳没有时间,但在chrome中它确实如此。

我错过了什么。

1 个答案:

答案 0 :(得分:2)

function setTimezone(moment, timezone) {

var a = moment.toArray(); // year,month,date,hours,minutes,seconds as an array

moment = moment.tz(timezone);

moment.year(a[0])
    .month(a[1])
    .date(a[2])
    .hours(a[3])
    .minutes(a[4])
    .seconds(a[5])
    .milliseconds(a[6]);

return moment; // for chaining
};

var m = setTimezone(moment('2014-03-10T10:00'), "America/New_York");
console.log(m.format())

使用此功能

使用前,请考虑更新时刻。最新版本已修复此问题