moment.js没有创建正确的日期

时间:2018-10-17 07:06:20

标签: javascript momentjs

我似乎无法弄清楚问题是什么,我在网站上有一个手动输入时间功能,用户可以在其中输入时间,然后将其存储在数据库中。

所以我的函数看起来像这样。

createTime() {
    this.startTime =  moment(`${this.hour}:${this.minute} ${this.timeOfDay}`, `HH:mm a`).utc();
}

所以我在下午5:45键入

现在当我console.log()创建的时刻得到这个……

enter image description here

所以它是正确的世界标准时间,但它说的是澳大利亚时间

然后当我从服务器获取时间,然后尝试将其转换回本地时间时。

fixTime(momentObject: moment.Moment) {
    return moment(momentObject).local().format('hh:mm A');
}

我凌晨4:45

我不知道是什么问题。如何解决此问题?

1 个答案:

答案 0 :(得分:0)

   fixTime(momentObject: moment.Moment) {

    var testDateUtc = moment.utc(momentObject);
    var localDate = moment(testDateUtc).local();
    return localDate.format('hh:mm A');
}

您必须创建一个矩对象,并在该对象上将UTC标志设置为true,并创建一个从原始矩对象转换而来的本地化矩对象,最后从本地化矩返回格式化的字符串     对象。

请参阅:http://momentjs.com/docs/#/manipulating/local/