JavaScript中的Date()问题 - 它增加了一个月?

时间:2013-10-14 10:57:49

标签: javascript date

我在JavaScript中遇到Date()的奇怪问题。

我有以下简单的代码:

var date = new Date(2013, 11, 01, 00, 00, 0, 0);
alert(date);

那应该将日期设置为01 November 2013 00:00:00:00但是它将它设置为12月? 正如你在这个小提琴中看到的那样 http://jsfiddle.net/CBqK2/

有什么问题?

4 个答案:

答案 0 :(得分:14)

JavaScript月份基于0,只是为了让您感到困惑。

从MDN获取Date构造函数:

  

month 表示月份的整数值,从1月份的0开始到12月份的11月。

所以对你的例子来说:

var date = new Date(2013, 10, 01, 0, 0, 0, 0);
alert(date);

您可以在MDN here上详细了解Date

答案 1 :(得分:3)

将第二个值设置为10.日期类以1表示0开头,就像在数组中一样;)

答案 2 :(得分:1)

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

例如:1月为0,2月为1,依此类推。

如果您想从0开始,请使用以下格式

var date = new Date('2013/10/01');

答案 3 :(得分:0)

日期列出了从零开始的工作日月份。

月份为1月至12月为0-11,周日为周六至周六为0-6。

当你说。

var date = new Date('1381751517000')//我在2013-10-14T11:51:00中使用了以毫秒为单位的时间戳,因为js接受时间戳(以毫秒为单位)。

现在,如果我们说

day = date.getDay();

它返回1,即星期一,

month = date.getMonth()

它返回9,即10月。

以我们使用格式('YYYY,MM,DD,HH,mm,ss,ms')创建日期的方式相同,我们也应该以相同的方式给出输入。