1

所以现在,是上午 9 点 23 分。我有一个代表当前日期的 UTC 日期字符串,看起来像这样"2012-07-17T09:23:27.75"

我想在一个日期对象中,所以我可以显示一个格式很好的日期,所以我:

var myDate = new Date("2012-07-17T09:23:27.75")
// Gives --> Tue Jul 17 2012 10:23:27 GMT+0100 (GMT Daylight Time)

因此,由于夏令时,我遇到了一个小时外的问题。我可以看到这myDate.getTimezoneOffset()给了我-60,让我的日期实际反映当前正确时间的标准/最佳实践方式是什么?我刚刚进入 javascript date hell 了吗?

4

2 回答 2

2

试试momentjs.com。我真的发现它对这些事情很方便。

var myDate = moment("2012-07-17T09:23:27.75");

为您提供时区中的日期实例(基本上在您的计算机上配置)。此外,momentjs 具有很好的人性化格式,例如“几秒钟前”、“一个月前”、...

日期在 JS 中真的是地狱(但不仅在 JS 中)。您可以做的最好的事情是始终仅在浏览器 <-> 服务器之间以 UTC 传输。然后在服务器上将其转换为您喜欢的时间格式,您显然只需要保持一致即可。这样我就设法正确处理日期时间。

于 2012-07-17T08:41:13.900 回答
0

尝试删除“T”

当我在控制台中发现时,我正在调试 Chrome 中的一些日期时间格式问题

new Date('2016-04-16T15:15:00') 返回 2016 年 4 月 16 日星期六 16:15:00 GMT+0100(GMT 夏令时间)

尽管

new Date('2016-04-16 15:15:00') 返回 2016 年 4 月 16 日星期六 15:15:00 GMT+0100(GMT 夏令时间)

于 2016-03-17T11:14:35.107 回答