【问题标题】:Why new Date returns wrong date?为什么 new Date 返回错误的日期?
【发布时间】:2019-07-12 19:42:58
【问题描述】:

当我创建一个新对象var date = new Date(1550571050) 这返回

1970 年 1 月 19 日星期一 05:42:51 GMT+0700

应该是这样的

2019 年 2 月 19 日星期一 05:42:51 GTM+0700

有什么问题?

【问题讨论】:

  • RTM。 new Date() 需要毫秒

标签: javascript


【解决方案1】:

var date = new Date(1550571050) 的日期为 1550571050,以秒为单位。

如MDN 所述,Date 构造函数接受一个 unix 时间戳

一个整数值,表示毫秒

如果您将 000 添加到您的日期,它将以毫秒而不是秒为单位,并且日期对象将是正确的

new Date(1550571050000)
// Tue Feb 19 2019 12:10:50 GMT+0200 (Eastern European Standard Time)

【讨论】:

  • @Myrealname 如果您在 Stackoverflow 上找到一些答案可以解决您的问题 - 单击投票按钮下方的复选标记图标,以便帮助其他用户
【解决方案2】:

在 Javascript 中时间戳以毫秒为单位,而不是秒

【讨论】:

    【解决方案3】:

    就这样吧:

    var timestamp = 1550571050;
    var date = new Date(timestamp * 1000);
    

    并参考这个:

    Timestamp to human readable format

    【讨论】:

      【解决方案4】:

      时间戳以毫秒为单位,因此乘以 1000。然后它会给出正确的日期。

      new Date(1550571050000)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-28
        • 2021-05-14
        • 1970-01-01
        • 2017-05-25
        • 2017-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多