momentjs - 为什么是 moment([2020, 0, 29, 0, 0, 0]).utcOffset(0);显示为“2020-01-28T23:00.00+00:00”?
momentjs - why is moment([2020, 0, 29, 0, 0, 0]).utcOffset(0); showing as '2020-01-28T23:00.00+00:00'?
我正在尝试创建一个需要代表这个时间的时间对象:29 January 2020 00:00:00
。
我需要在我的项目中不带时区地工作,所以我像这样创建了我的 moment 对象:
let m = moment([2020, 0, 29, 0, 0, 0]).utcOffset(0);
当我将创建的日期记录到控制台时,会发生以下情况:
console.log(m.format('YYYY-MM-DDTHH:mm:ssZ');
>>> 2020-01-28T23:00.00+00:00
'00:00:00'时间有问题吗?为什么我有 23:00:00
而不是欲望值?
根据the Moment.js documentation:
Parse
[...]
Array
[...]
Construction with an array will create a date in the current time zone. To create a date from an array at UTC, use moment.utc(Number[]).
因此 [2020, 0, 29, 0, 0, 0]
被解释为您当地的时区。调用 utcOffset(0)
然后 将 该号码倒退一小时,因此您当前处于 +01:00 时区。
如文档所示,使用 moment.utc(Number[])
method 直接在 UTC 时区中创建日期:
let m = moment.utc([2020, 0, 29, 0, 0, 0]);
console.log(m.format('YYYY-MM-DDTHH:mm:ssZ'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.28.0/moment.min.js"></script>
我正在尝试创建一个需要代表这个时间的时间对象:29 January 2020 00:00:00
。
我需要在我的项目中不带时区地工作,所以我像这样创建了我的 moment 对象:
let m = moment([2020, 0, 29, 0, 0, 0]).utcOffset(0);
当我将创建的日期记录到控制台时,会发生以下情况:
console.log(m.format('YYYY-MM-DDTHH:mm:ssZ');
>>> 2020-01-28T23:00.00+00:00
'00:00:00'时间有问题吗?为什么我有 23:00:00
而不是欲望值?
根据the Moment.js documentation:
Parse
[...]
Array
[...] Construction with an array will create a date in the current time zone. To create a date from an array at UTC, use moment.utc(Number[]).
因此 [2020, 0, 29, 0, 0, 0]
被解释为您当地的时区。调用 utcOffset(0)
然后 将 该号码倒退一小时,因此您当前处于 +01:00 时区。
如文档所示,使用 moment.utc(Number[])
method 直接在 UTC 时区中创建日期:
let m = moment.utc([2020, 0, 29, 0, 0, 0]);
console.log(m.format('YYYY-MM-DDTHH:mm:ssZ'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.28.0/moment.min.js"></script>