【问题标题】:Javascript Date object's constructor returns a date one month ahead [duplicate]Javascript Date对象的构造函数返回一个月前的日期[重复]
【发布时间】:2018-08-15 15:01:46
【问题描述】:

我正在使用打字稿(Angular 5)并且我有以下代码:

let date = new Date(2018, 8, 17, 14, 0);

我预计结果是“2018 年 8 月 17 日星期五 14:00:00 GMT-0400(东部夏令时间)”,但实际上返回的是:

2018 年 9 月 17 日星期一 14:00:00 GMT-0400(东部夏令时间)

如您所见,它为日期增加了一个月。我已经通过减去以下代码来修复它:

let date = new Date(2018, 8 - 1, 17, 14, 0);

我的问题是为什么会这样?任何的想法?有没有其他方法可以解决这个问题?

【问题讨论】:

  • 月份从 0 到 11 编号。

标签: javascript angular typescript date angular5


【解决方案1】:

这与 Angular 无关,它只是 JavaScript 的 Date 的工作原理。月份从零开始:一月是0,十二月是11。

【讨论】:

    【解决方案2】:

    Javascript Date 对象从 0 开始计算月份

    来自“W3Schools”

    JavaScript 从 0 到 11 计算月份。一月是 0。十二月是 11。

    https://www.w3schools.com/js/js_dates.asp

    所以只需设置7 而不是8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2016-08-03
      • 1970-01-01
      相关资源
      最近更新 更多