Javascript 这是怎么回事;“月天数”;功能工作?

Javascript 这是怎么回事;“月天数”;功能工作?,javascript,Javascript,好吧,我看不出这是在具体做什么,这部分: function GetDaysInMonth(month, year) { return 32 - new Date(year, month, 32).getDate(); } 我知道getDate()做了什么,但后来我在JavaScript中查找了Date,但在这个特定的示例中,我不明白为什么在这里传递32。这怎么可能会返回您要传递给它的任何月份和年份的天数呢?任何月份的“第32天”都会滚动到下一个月。如果一个月有31天,

好吧,我看不出这是在具体做什么,这部分:

  function GetDaysInMonth(month, year) 
  {
      return 32 - new Date(year, month, 32).getDate();
  }
我知道
getDate()
做了什么,但后来我在JavaScript中查找了
Date
,但在这个特定的示例中,我不明白为什么在这里传递32。这怎么可能会返回您要传递给它的任何月份和年份的天数呢?

任何月份的“第32天”都会滚动到下一个月。如果一个月有31天,“32天”将是下个月的第一天。如果有30天,“32天”将是下个月的第2天。如果有28天,“32天”将是下个月的第4天

从32中减去其中任何一个,就得到了正确的数字。

试试这个:

 new Date(year, month, 32).getDate();
这是使用前一个月的第一天,并从中减去一天(86400000百万秒),得到给定月份的最后一天。请注意,
Date
的month参数期望值为0(一月)到11(十二月)。但是对于
GetDaysInMonth
使用1(一月)到12(十二月):

如果要使用与日期相同的值,请改用新日期(年、月+1、1、0、0、0、0、0)

GetDaysInMonth(12, 2007) // returns 31
GetDaysInMonth(1, 2008) // returns 31
GetDaysInMonth(2, 2008) // returns 29
下个月的零日期是本月的最后一天


警报(new Date().monthDays())//任何日期对象

实际上它返回的是2月份的31,所以fing功能甚至不起作用。我只是很生气,因为我的老板只是告诉我如何减少30行代码,但他告诉我使用的fing函数根本不起作用!并不是说我无法修复它,而是你知道有时在代码审查方面,asswipes是多么的失意。我应该查一下这个方法,它被偷走了:我不明白你的,1,0,0是什么,。。。和-864000@coffeeaddict当前位置阅读手册:假设我通过了2009年2月的考试。好的,那么传入32应该给我4和GetDate()。然后你拿32-4…对吗?好的,那么为什么我仍然要为Feb32返回31-新日期(2009,1,32)。getDate()为我返回28。记住,月份是以零为基础的。
GetDaysInMonth(12, 2007) // returns 31
GetDaysInMonth(1, 2008) // returns 31
GetDaysInMonth(2, 2008) // returns 29
Date.prototype.monthDays: function(){
 var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
 return d.getDate();
}