我在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/
有什么问题?
答案 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')创建日期的方式相同,我们也应该以相同的方式给出输入。