Javascript JS日期YYYY-MM-DD返回不正确的值
我有HTMLJavascript JS日期YYYY-MM-DD返回不正确的值,javascript,date,iso,Javascript,Date,Iso,我有HTMLDate输入,返回格式为'YYYY-MM-DD'的字符串 然后我想将其放入日期构造函数中,以便将其转换为ISOFormat(用于Mongo查询) 然而,结果出乎意料。 执行新日期('2020-06-25')返回“Wed Jun 24 2020 20:00:00 GMT-0400(东部夏令时)”。请注意,这是前一天。为什么会发生这种情况?我如何更改它以获取当前日期?谢谢当您在JavaScript中创建一个新的Date对象时,它希望参数是GMT。然后它会将其转换为您的本地时区GMT-04
Date
输入,返回格式为'YYYY-MM-DD'的字符串
然后我想将其放入日期
构造函数中,以便将其转换为ISOFormat(用于Mongo查询)
然而,结果出乎意料。
执行新日期('2020-06-25')返回“Wed Jun 24 2020 20:00:00 GMT-0400(东部夏令时)”。请注意,这是前一天。为什么会发生这种情况?我如何更改它以获取当前日期?谢谢当您在JavaScript中创建一个新的
Date
对象时,它希望参数是GMT。然后它会将其转换为您的本地时区GMT-0400
,这解释了为什么它需要4个小时。您可以通过将时区附加到日期字符串中来设置时区:新日期('2020-06-25 GMT-0400')
应给出“Thu Jun 25 2020 00:00:00 GMT-0400”。“…它希望参数以GMT为单位”不正确。yyyy-mm-dd格式的日期解析为UTC,但其他日期格式不解析为UTC。“2020-06-25 GMT-0400”不是ECMA-262支持的格式,因此解析取决于实现<代码>新日期('2020-06-25 GMT-0400')在Safari和Firefox中生成无效日期。“yyy-MM-DD”是ISO 8601格式。如果您想要完全限定,请附加“T00:00:00Z”。