【问题标题】:IE remove 4 hours form date when convert string to date [duplicate]IE将字符串转换为日期时删除4小时的日期[重复]
【发布时间】:2015-04-07 15:49:28
【问题描述】:

我有 Angular 应用程序,它可以在 chrome 上正常工作,但我在 IE 中有一些小错误,其中一个是日期对象没有将其转换为正确的日期时间?在 chrome 上,它将字符串 '2015-04-09T12:30:00' 转换为 'Thu Apr 09 2015 08:30:00 GMT-0400 (Eastern Daylight Time)' 但 IE 将其转换为 'Thu Apr 09 2015 12:30: 00 GMT-0400(东部夏令时间)'只是想知道为什么以及如何解决它?

http://plnkr.co/edit/SBXzQe6oArXA8w3swfMo

javascript

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

【问题讨论】:

  • 它是'2015-04-09T12:30:00'
  • 所以 IE 的转换看起来没问题,但 Chrome 删除 4 小时。
  • 没有 chrome ok 但 IE 错误
  • Firefox 为我返回 Thu Apr 09 2015 12:30:00 GMT+0200 这和 IE 一样。
  • 您好,我创建了 plunker 来显示问题只是我想将它们制作为 chrome

标签: javascript angularjs google-chrome internet-explorer date


【解决方案1】:

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

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:30:00.000Z”

IE:“2015-04-09T09:30:00.000Z”

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多