我对JS中的日期感到困惑。。。据我所知,月份编号为0-11,sa创建
var x = new Date(2014, 2, 1)
将给我3月1日。但是创建var x = new Date(2014, 2, 0)
会得到二月,所以x.getDate()不会给我三月的天数,而是二月的天数。。。如果它的数字是2(从0开始计算),这应该返回三月吗?
还有没有一种方法可以在getDay()方法中将星期一设置为一周的第一天?
月份范围从0到11.0是一月,其中一个月的日期以1开始,所以如果在天中使用0,它会给出前几个月的最后一天。所以在你的情况下,你应该使用
var x = new Date(2014, 1, 1) // for 1st feb 2014
您可以将周初更改为Monday
,如下所示
Date.prototype.mGetDay = function() {
return (this.getDay() + 6) %7;
}
有关
如果您已经接受了以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月从0开始,12月从11开始。"
"getDate()"也不会给出天数,但是"根据当地时间返回指定日期的月份(1-31)。"
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date