我的应用程序的时间记录功能遇到问题。
所以我有一个基本上说启动的按钮,并且调用了一个函数来存储在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())我得到了这个日期对象
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
...
答案 0 :(得分:0)
当我使用以下命令在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
自从时刻返回其自身的一个实例以来,您需要使用format()
方法来格式化对纯字符串的响应。