Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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_Javascript_Date - Fatal编程技术网

为什么新日期()会删除一天?-Javascript

为什么新日期()会删除一天?-Javascript,javascript,date,Javascript,Date,我正在使用新建日期()创建日期。当我这样做的时候,就是减去一天。代码如下: var dateString = "2016-04-10"; var date = new Date(dateString); // date = Sat Apr 09 2016 18:00:00 GMT-0600 (MDT) 我误解了什么?为什么日期不是2016年4月10日?如何使其正常工作?您的时区是GMT-6(如您提供的输出中的GMT-0600(MDT)所示)。因此,生成的日期被-6小时抵消。在这种情况下,午夜

我正在使用
新建日期()
创建日期。当我这样做的时候,就是减去一天。代码如下:

var dateString = "2016-04-10";
var date = new Date(dateString);

// date = Sat Apr 09 2016 18:00:00 GMT-0600 (MDT)
我误解了什么?为什么日期不是2016年4月10日?如何使其正常工作?

您的时区是GMT-6(如您提供的输出中的
GMT-0600(MDT)
所示)。因此,生成的日期被-6小时抵消。在这种情况下,午夜减去6小时是前一天的下午6点


如果调用
date.toISOString()
,您将看到UTC时间是
“2016-04-10T00:00:00.000Z”

尝试
新日期(2016,4,10)嗯,您在那里的日期是2016年4月10日午夜(0:00)?我收到的是以上述方式格式化的日期。我需要让这个格式工作吗?有什么办法可以实现吗?@jhamm:你的日期对象是正确的。只是您的输出格式与时区有关-使用
.toutString()
而不是
.toString()
这个问题以前被问过很多次。显然,当标准将ISO 8601格式日期视为本地日期时,将其视为UTC可以避免混淆。只有当您意识到ECMAScript 2015日期字符串解析的不一致性时,“如预期的那样”。