我对JS中的约会感到困惑......据我所知,月份编号为0-11,创造了
var x = new Date(2014, 2, 1)
会给我 3月1日。但是创建var x = new Date(2014, 2, 0)
会给二月,所以x.getDate()不会给我三月的天数,而是二月份...如果它的数量相当于这个天数是2(数字从0开始)?
还有办法在getDay()方法中将星期一设置为星期的第一天吗?
答案 0 :(得分:2)
如果你已经接受从0开始的月份,这并不矛盾,但它有点奇怪:
new Date(2014, 2, 1) //1st of March
new Date(2014, 2, 0) //28th of February
new Date(2014, 2, -3) //25th of February
new Date(2014, -2, -3) // 28th of October of 2013
所以这需要一年,然后加上月份(减去负数)然后它与天数相同
答案 1 :(得分:2)
月份范围从0到11.0是1月份,从月份开始的日期是1,所以如果你在一天中使用0,它会给出前一个月的最后一天。所以在你的情况下你应该使用
var x = new Date(2014, 1, 1) // for 1st feb 2014
您可以将周开始更改为Monday
,如下所示
Date.prototype.mGetDay = function() {
return (this.getDay() + 6) %7;
}
请参阅此文章以了解details
答案 2 :(得分:0)
这并不矛盾。月份使用整数值表示,“从1开始为0,从12月开始为11”。
同样``getDate()'不会给你天数,但是 “根据当地时间返回指定日期的月中某天(1-31)。”
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date