Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date moment.js第二天返回_Date_Parsing_Momentjs_Days - Fatal编程技术网

Date moment.js第二天返回

Date moment.js第二天返回,date,parsing,momentjs,days,Date,Parsing,Momentjs,Days,我在分析这样的约会。“时刻”的区域设置为德国: moment("2030-12-31T23:59:59.000Z") 但是,当我打印它时,它将选择第二天: moment("2030-12-31T23:59:59.000Z").format('L') -> "01.01.2031" 这就是解析后矩对象的外观,在这里我们可以清楚地看到解析的日期是正确的: Moment {_isAMomentObject: true, _i: "2030-12-31T23:59:59.000Z", _f:

我在分析这样的约会。“时刻”的区域设置为德国:

moment("2030-12-31T23:59:59.000Z")
但是,当我打印它时,它将选择第二天:

moment("2030-12-31T23:59:59.000Z").format('L')
-> "01.01.2031"
这就是解析后矩对象的外观,在这里我们可以清楚地看到解析的日期是正确的:

Moment {_isAMomentObject: true, _i: "2030-12-31T23:59:59.000Z", _f: "YYYY-MM-DDTHH:mm:ss.SSSSZ", _tzm: 0, _isUTC: false, …}
_d
:
Wed Jan 01 2031 00:00:00 GMT+0100 (CET) {}
_f
:
"YYYY-MM-DDTHH:mm:ss.SSSSZ"
_i
:
"2030-12-31T23:59:59.000Z"
_isAMomentObject
:
true
_isUTC
:
false
_isValid
:
true
_locale
:
Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _ordinal: "%d.", _ordinalParse: /\d{1,2}\./, …}
_pf
:
charsLeftOver
:
0
empty
:
false
invalidFormat
:
false
invalidMonth
:
null
iso
:
true
meridiem
:
undefined
nullInput
:
false
overflow
:
-1
parsedDateParts
:
(7) [2030, 11, 31, 23, 59, 59, 0]
unusedInput
:
[]
unusedTokens
:
[]
userInvalidated
:
false
__proto__
:
Object
_tzm
:
0
__proto__
:
Object
有趣的是,我正在以完全相同的方式解析2-3个以上的日期(大多数是某一年的1月1日),它们工作得很好


我不相信这是UTC的事


这里发生了什么?

您的输入以
Z
结尾,因此它被视为UTC

改用:

默认情况下,力矩以本地时间解析和显示

如果要以UTC格式解析或显示某个时刻,可以使用
moment.UTC()
而不是
moment()

moment.locale('de');
var m1=力矩.utc(“2030-12-31T23:59:59.000Z”).格式(“L”);
控制台日志(m1);
var m2=力矩(“2030-12-31T23:59:59.000Z”)。格式(“L”);
主控台对数(m2)

“我相信这不是UTC的事情。”但是您解析的时间戳是UTC的,德国是提前一小时的。即使您没有将locale设置为德国,也会发生这种情况。如果时间少于22小时,它就会打印出正确的结果。哦,我不敢相信我错过了那篇文章。。。。。