【问题标题】:Javascript date formatting - one hour out due to daylight savingJavascript日期格式 - 由于夏令时一小时
【发布时间】:2012-07-17 08:36:02
【问题描述】:

现在是上午 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?

【问题讨论】:

  • 日期在任何语言中都是地狱,不仅仅是 js。
  • 不...我很确定它主要限于 JavaScript 和 Java。我从来没有在 C# 上遇到过如此困难的时期,C# 一直很容易。

标签: javascript date


【解决方案1】:

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

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

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

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

【讨论】:

  • 喜欢这个库,它让我可以解析日期而没有小时问题,所以它是一个守门员:)
【解决方案2】:

尝试删除“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 夏令时间)

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2011-04-30
    • 2020-09-24
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2012-12-21
    相关资源
    最近更新 更多