【发布时间】:2014-02-02 22:17:53
【问题描述】:
var date = '2014-02-02T20:10:00';
console.log(date);
为什么会返回以下内容?:
'2014-02-02T20:10:00' //好的
但是:
var date = new Date(date);
console.log(date);
返回:
2014 年 2 月 2 日星期日 21:10:00 GMT+0100 //不好
我想收到以下,没有偏移:
格林威治标准时间 2014 年 2 月 2 日星期日 20:10:00
我怎样才能做到这一点?
【问题讨论】:
-
你不会是指
Sun Feb 02 2014 20:10:00 GMT +0000吧? -
我想收到不添加 +1 小时的对象
-
由于日期字符串不包含时区偏移量,因此假定日期为 UTC。如果您使用
'2014-02-02T20:10:00+0100',它应该可以正常工作。 This question 说明了在任何情况下都可以这样做的另一个原因。 -
在第一个代码 sn-p 中,您在控制台中打印一个字符串对象,而在第二个代码 sn-p 中,您打印一个转换为字符串的 Date 对象。 @AndyNovocin 提供了一些很好的链接,我还建议检查 date.js 插件 datejs.com
-
@Felix Kling 根据 ISO8601:2004 规范,假定这种没有偏移的时间戳是本地的,而不是 UTC。 ECMA5 规范中添加了勘误表,后来使其与 ISO 保持一致。所以一些浏览器实现做一件事和另一件事。我自己才刚刚发现这一点,需要回顾一些答案并纠正我的假设(来自阅读)。
标签: javascript date date-format