JavaScript獲取兩個日期之間所有的日期

admin發表於2018-05-25

分享一段程式碼例項,它實現了獲取兩個日期之間的所有日期。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function gDate(datestr){
  var temp = datestr.split("-");
  var date = new Date(temp[0],temp[1],temp[2]);
  return date;
}
 
var start = "2016-6-25";
var end = "2016-7-2";
var startTime = gDate(start);
var endTime = gDate(end);
while((endTime.getTime()-startTime.getTime())>=0){
  var year = startTime.getFullYear();
  var month = startTime.getMonth().toString().length==1?"0"+startTime.getMonth().toString():startTime.getMonth();
  var day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate();
  console.log(year+"-"+month+"-"+day);
  startTime.setDate(startTime.getDate()+1);
}

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).function gDate(datestr){},返回一個時間物件,引數是一個時間日期字串。

(2).var temp = datestr.split("-"),用橫線分隔生成一個陣列。

(3).var date = new Date(temp[0],temp[1],temp[2]),生成一個Date物件。

(4).return date,返回這個物件。

(5).var start = "2016-6-25",開始的時間日期字串。

(6).var end = "2016-7-2",結束的時間日期字串。

(7).var startTime = gDate(start),返回開始時間日期的時間物件。

(8).var endTime = gDate(end),返回結束時間日期的時間物件。

(9).while((endTime.getTime()-startTime.getTime())>=0),while迴圈判斷是否小於結束日期的時間戳,如果小於,則繼續後面的計算。

(10).var year = startTime.getFullYear(),獲取年份。

(11).var month = startTime.getMonth().toString().length==1?"0"+startTime.getMonth().toString():startTime.getMonth(),獲取月份,如果是個位數,前面就加0,否則就直接返回。

(12).var day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate(),和上面同樣道理。

(13).console.log(year+"-"+month+"-"+day),輸出日期。

(14).startTime.setDate(startTime.getDate()+1),加一天。

二.相關閱讀:

(1).split()方法參閱javascript split()一章節。

(2).getTime()方法參閱javascript getTime()一章節。

(3).setDate()方法參閱javascript setDate()一章節。

(4).getDate()方法參閱javascript getDate()方法一章節。

相關文章