【问题标题】:Incorrect Date() outcome [duplicate]Date() 结果不正确[重复]
【发布时间】:2013-10-01 10:40:57
【问题描述】:

我正在使用 javascript Date() 函数来处理日期。

我有以下:

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    console.log(y);
    console.log(m);
    console.log(d);

这会在控制台中返回:

2013
9
1

如果我错了,请纠正我,比今天的实际日期晚 1 个月。

我在英国,那么 BST 会影响结果吗?

谢谢

【问题讨论】:

  • 9 表示 10 月,0 表示 1 月。月份的默认范围是一个数组,因此从 0 到 11。
  • 是的,它只是正确的。因为月份从 0 开始。这意味着 Jan = 0 和 Dec = 11 。
  • 啊,我自己都没意识到,真是太愚蠢了!
  • @user1970557 有一天会发生在每个程序员身上:P

标签: javascript date


【解决方案1】:
var m = date.getMonth();

因为月份开始于0

0-January
1-February
2-March
3-April
4-May
5-June
6-July
7-August
8-September
9-October
10-November
11-December

【讨论】:

  • @SURESH ATTA,谢谢你的建议。
【解决方案2】:

JavaScript months are 0 based.

日期.getMonth 根据本地时间返回指定日期的月份,作为 从零开始的值(其中零表示一年中的第一个月)。

只是为了混淆!

因此,如果您想要实际的月份数,请务必记住将 date.getMonth() 的结果加 1。

【讨论】:

    【解决方案3】:

    getMonth() 方法根据当地时间返回指定日期的月份(从 0 到 11)。

    来源:w3schools

    因此,您获得的时间比当地时间的实际月份少 1 个月。

    你可以使用:

    console.log(("0" + (m+1)).slice(-2))
    

    【讨论】:

      【解决方案4】:

      JavaScript 月份从 0 开始。

      【讨论】:

        猜你喜欢
        • 2014-10-20
        • 2018-08-27
        • 2013-10-05
        • 2017-04-10
        • 2019-07-01
        • 1970-01-01
        • 2021-10-05
        • 2014-01-28
        • 1970-01-01
        相关资源
        最近更新 更多