【问题标题】:Javascript returns wrong Date values (NodeJS)Javascript 返回错误的日期值 (NodeJS)
【发布时间】:2016-05-11 11:25:47
【问题描述】:

我正在处理一个 NodeJS 项目,但我得到了错误的日期值。而且我不明白我做错了什么。

 var d = new Date(results[1].timestamp);
      console.log(results[1].timestamp); // 2016-05-10T13:29:47   <- this is right (stored at my DataBase)
      console.log(d.getDate());          //10
      console.log(d.getFullYear());      //2016
      console.log(d.getMonth());         //4
      console.log(d.getDay());           //2
      console.log(d.getHours());         //15
      console.log(d.getMinutes());       //29
      console.log(d.getSeconds());       //47

所以月、日和小时是错误的。 我在我的 Mac 上的 google chrome 中看到了这些结果

感谢您的帮助

【问题讨论】:

  • 您是否阅读了 getDay 和 getMonth 的文档?我认为你没有...

标签: javascript node.js date


【解决方案1】:

这里有几个错误:

  1. getMonth 返回基于 0 的月份。那就是五月是04。

  2. getDay 返回星期几。我猜你想要getDate

  3. 日期被解析为 UTC,getHour 是根据区域设置。所以小时可能与您想要的不同(但在这里它似乎是“精确的”,因为它与输入的值相同)。

下一个问题的提示:查看一些文档。例如the MDN。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    getDay() 函数返回日期的星期几,即从星期日到星期六(0 到 6)

    getMonth() 函数返回从一月到十二月的月份(0 到 1)所以这里你需要加 1 才能正确获取值

    恐怕你误解了 getHours() 结果,因为如果我检查提到的日期,它会给我 13

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多