Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期对象在月份编号中不一致?_Javascript_Date_Datetime - Fatal编程技术网

Javascript日期对象在月份编号中不一致?

Javascript日期对象在月份编号中不一致?,javascript,date,datetime,Javascript,Date,Datetime,我对JS中的日期感到困惑。。。据我所知,月份编号为0-11,sa正在创建 var x = new Date(2014, 2, 1) 将给我3月1日的时间。但是创建新日期(2014,2,0)会得到2月,所以x.getDate()不会给出3月的天数,而是2月的天数。。。如果数字为2(从0开始计算),是否应该返回3月份 还有一种方法可以在getDay()方法中将星期一设置为一周的第一天吗?如果您已经接受了以0开头的月份,这并不矛盾,但有点奇怪: new Date(2014, 2, 1) //1st

我对JS中的日期感到困惑。。。据我所知,月份编号为0-11,sa正在创建

var x = new Date(2014, 2, 1)
将给我3月1日的时间。但是创建新日期(2014,2,0)会得到2月,所以x.getDate()不会给出3月的天数,而是2月的天数。。。如果数字为2(从0开始计算),是否应该返回3月份


还有一种方法可以在getDay()方法中将星期一设置为一周的第一天吗?

如果您已经接受了以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

所以它需要一年,然后加上一个月(如果是负数,则减去),然后对天做同样的处理

如果你已经接受了以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)。”


请看

这并不矛盾。月份使用整数值表示,“1月从0开始,12月从11开始。”

另外,“getDate()”不提供天数,但 “根据本地时间返回指定日期的月份日期(1-31)。”


请参见

月份范围从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到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;
}

请参阅本文,因为1是第一个,0代表上个月的前一天
var x=新日期(2014,2,0)
和x返回
2014年2月28日星期五00:00:00
,因此
x.getDate()
将返回28。。这里0代表上一个月的最后一天,1是第一天,0代表上一个月的前一天
var x=新日期(2014,2,0)
和x返回
2014年2月28日星期五00:00:00
,因此
x.getDate()
将返回28。。此处0表示上个月的最后日期