IE在将字符串转换为日期时从日期中删除4小时

IE remove 4 hours form date when convert string to date

本文关键字:日期 删除 4小时 字符串 转换 IE      更新时间:2023-09-26

我有一个angular应用程序,它可以很好地使用chrome,但我在IE中有一些小错误,其中之一是日期对象没有正确转换日期时间?在chrome上,它将字符串"2015-04-09T12:30:00"转换为"2015年4月9日星期四08:30:00 GMT-0400(东部夏令时)",但IE将其转换为"2014年4月09日星期四12:30:00 GMT-04 00(东部夏令时间)",只是想知道为什么以及如何修复它?

http://plnkr.co/edit/SBXzQe6oArXA8w3swfMo

javascript

//this line work fine in google chrome 
    $scope.tm = new Date(user.until);

我想这是你的问题:ECMAScript ed 6草案

ECMAScript 5 ISO-8601格式支持

日期时间字符串可以是ISO 8601格式。例如,可以传递和解析"2011-10-10"(仅日期)或"2011-10-10T14:48:00"(日期和时间)。UTC时区用于解释不包含时区信息的ISO 8601格式的参数(请注意,ECMAScript ed 6草案指定不带时区的日期-时间字符串将被视为本地字符串,而不是UTC)。

让我们比较一下IE和Chrome的ISO时间。

Chrome:"2015-04-09T12:3:00.000Z"

即:"2015-04-09T09:3:00.000Z"

IE假定ISO时间是本地时间,就像它应该是的那样。Chrome实际上采用了UTC。