Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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

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
Javascript JS日期YYYY-MM-DD返回不正确的值_Javascript_Date_Iso - Fatal编程技术网

Javascript JS日期YYYY-MM-DD返回不正确的值

Javascript 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

我有HTML
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”。