我的应用程序的时间记录功能出现了一些问题。
所以我有一个按钮,基本上是说开始,它调用一个函数来存储按钮被按下的utc时间,如下所示。
this.startTime = moment().utc();
现在,如果我console.log(this.startTime),我会得到这个..
Moment {_isAMomentObject: true, _isUTC: true, _pf: {…}, _locale: Locale, _d:
Tue Oct 09 2018 10:14:01 GMT+1100 (Australian Eastern Daylight Time), …}
_d: Tue Oct 09 2018 10:14:01 GMT+1100 (Australian Eastern Daylight Time) {}
_isAMomentObject: true
_isUTC: true
_isValid: true
...
所以它说UTC是真的,但是时间是10:14澳大利亚东部夏令时,这不是应该转换成UTC时间吗??
现在,当我调用另一个函数获取存储的时间时,我得到了正确的UTC时间,但采用的是澳大利亚东部夏令时
let startTime = moment(startTime);
我得到的回报是
_a: (7) [2018, 9, 8, 23, 5, 32, 774]
_d: Mon Oct 08 2018 23:05:32 GMT+1100 (Australian Eastern Daylight Time) {}
_f: "YYYY-MM-DDTHH:mm:ss.SSSS"
_i: "2018-10-08T23:05:32.774"
_isAMomentObject: true
_isUTC: [ZoneTask]
_isValid: true
...
我不确定我做错了什么。
编辑
如果我使用console.log(moment.utc().format()),我会得到这个日期字符串
2018-10-08T23:54:23Z
但是如果我使用console.log(moment.utc()),我会得到这个date对象
Moment {_isAMomentObject: true, _isUTC: true, _pf: {…}, _locale: Locale, _d:
Tue Oct 09 2018 10:56:56 GMT+1100 (Australian Eastern Daylight Time), …}
_d: Tue Oct 09 2018 10:56:56 GMT+1100 (Australian Eastern Daylight Time) {}
_isAMomentObject: true
_isUTC: true
_isValid: true
...
发布于 2018-10-09 07:47:42
当我在Node.js中运行Moment 2.22.2
时,使用:
var startTime = moment.utc()
console.log(startTime);
// Returns moment.utc("2018-10-08T23:36:43.363+00:00")
console.log(moment(startTime));
// Returns moment.utc("2018-10-08T23:36:43.363+00:00")
console.log(moment(startTime).format());
// Returns 2018-10-08T23:45:43Z
由于moment返回自身的一个实例,因此需要使用format()
方法将响应格式化为普通字符串。
https://stackoverflow.com/questions/52711351
复制相似问题