在Javascript日期中短划

时间:2010-12-09 13:05:30

标签: javascript datetime

我想这是javascript中的绝对新手问题。

我想知道javascript日期' - '的意思。

示例:新日期(2010年,12 - 1日,10日,22日,00日,00日);

12 - 1在上面说了什么。

由于

3 个答案:

答案 0 :(得分:6)

它减去一个得到11

为什么呢?这通常是前一个月号码“关闭”的结果,因为.getMonth()是基于0的,其他日期部分是从1开始的。 Date()的签名如下所示:

new Date(year, month, date, hour, minute, second, millisecond)

...但month参数为0-11,其中yeardate参数为1-based。你认为12是12月,但是从0开始,它是11而不是12 ...你看到的代码风格是表达这种风格的一种方式,或者至少让你去“等一下......”并看到它不是November,因为你直觉地想到作者是否只是在那里放了“11”。

答案 1 :(得分:3)

12 - 1 == 11,一个简单的数学表达式。

它用于通知代码的读者,这个日期是12月。

由于Javascript中的月份为0(0 - 1月 - 11月 - 12月),因此更容易看出作者的意思。

这个习语也存在于Java中。而且由于Javascript“借用”了Java中的名字,如果它借了更多的东西就不会感到惊讶; - )

索引从0开始的for循环是一个常见的习惯用法,因此Date的作者可能使用了这样的代码:

for ( var i = 0; i < 12; ++i) {
    console.log( new Date( 2010, i, 1));   
}

看起来很典型,但是当基于0的索引不自然时使用很尴尬,比如几个月。

答案 2 :(得分:2)

这是一个简单的数学运算(12 - 1 = 11)。