js獲取指定月份的天數

antzone發表於2017-03-12

有時候需要獲取指定年中某一月的天數,因為每隔月的天數是有所不同的,並且不同年份同一個月的天數也有所不同,例如2月份,在閏年和平年的時候天數就是不同的,下面就介紹一個簡單的方法來獲取某一年中指定月份的天數。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function getDadys(whichYear,whichMonth){
  var nextMoth=whichMonth+1
  var nextYear=whichYear;
  if(nextMoth==13){
    nextMoth=1;
    nextYear++;
  }
  var theCurrentDate=whichYear+"-"+whichMonth+"-1";
  var theNextDate=nextYear+"-"+nextMoth+"-1";
  var yearObjOne=new Date(theCurrentDate);
  var yearObjTwo=new Date(theNextDate);
   
  var milliseconds=yearObjTwo.getTime()-yearObjOne.getTime()
  var daymilliseconds=3600*24*1000;
  return (milliseconds/daymilliseconds);
}
console.log(getDadys(2018,2));

以上程式碼可以計算出指定年份中某一月的天數。輸出結果是29。下面介紹一下實現過程:

一.實現原理:

原理很簡單就是獲取下一個月份之初和要獲得天數的月份之初的時間戳差距,這樣就是要獲取天數月份所擁有的毫秒數,再用這個毫秒數除以每天擁有的毫秒數,這樣就會獲得月份的天數了。

二.程式碼註釋:

(1).function getDadys(whichYear,whichMonth){},宣告一個函式用來獲取月份的天數,具有兩個引數,第一個引數是要獲取月份的年,第二個引數要獲取天數的月份。

(2).var nextMoth=whichMonth+1,下一個月份。

(3).if(nextMoth==13) 判斷nextMoth的值是否等於12。

(4).nextMoth=1,超過12那麼就是從下一年的1月份開始了。

(5).whichYear++,當然年份也要加1。

(6).var theCurrentDate=whichYear+"-"+whichMonth+"-1",連線字串,使之成為2012-2-1這種形式。

(7).var theNextDate=nextYear+"-"+nextMoth+"-1",和上面同一個道理。

(8).var yearObjOne=new Date(theCurrentDate),建立時間物件。

(9).var milliseconds=yearObjTwo.getTime()-yearObjOne.getTime(),求出兩個月份之間的毫秒差。

(10).var daymilliseconds=3600*24*1000,獲取一天的毫秒數。

(11).return (milliseconds/daymilliseconds),返回天數,總毫秒數除以一天的毫秒數就是天數。

三.相關閱讀:

(1).Date參閱JavaScript Date一章節。

(2).getTime()函式參閱JavaScript getTime()一章節。

相關文章