首页 > 解决方案 > JS 日期 YYYY-MM-DD 返回不正确的值

问题描述

我有 HTMLDate输入,它返回格式为“YYYY-MM-DD”的字符串

然后我想把它放入Date构造函数中,以便我可以将它转换为 ISOFormat(用于 Mongo 查询)

然而,结果出乎意料。执行new Date('2020-06-25')返回“2020 年 6 月 24 日星期三 20:00:00 GMT-0400(东部夏令时间)”。请注意,这是前一天。为什么会发生这种情况,我怎样才能改变它以获得当前日期?谢谢

标签: javascriptdateiso

解决方案


当你Date在 JavaScript 中创建一个新对象时,它期望参数是 GMT 格式。然后它将其转换为您当地的时区GMT-0400,这就解释了为什么它要休息 4 小时。您可以通过将时区附加到日期字符串来设置时区:new Date('2020-06-25 GMT-0400')应该给您“Thu Jun 25 2020 00:00:00 GMT-0400”。


推荐阅读