php
public function getDatesBetweenTwoDays($startDate,$endDate){
$dates = [];
if(strtotime($startDate)>strtotime($endDate)){
//如果开始日期大于结束日期,直接return 防止下面的循环出现死循环
return $dates;
}elseif($startDate = $endDate){
//开始日期与结束日期是同一天时
array_push($dates,$startDate);
return $dates;
}else{
array_push($dates,$startDate);
$currentDate = $startDate;
do{
$nextDate = date('Y-m-d', strtotime($currentDate.' +1 days'));
array_push($dates,$nextDate);
$currentDate = $nextDate;
}while($endDate != $currentDate);
return $dates;
}
}
JQ
Date.prototype.format=function (){
var s='';
s+=this.getFullYear()+'-'; // 获取年份。
s+=(this.getMonth()+1)+"-"; // 获取月份。
s+= this.getDate(); // 获取日。
return(s); // 返回日期。
};
function getAll(begin,end){
var ab = begin.split("-");
var ae = end.split("-");
var db = new Date();
db.setUTCFullYear(ab[0], ab[1]-1, ab[2]);
var de = new Date();
de.setUTCFullYear(ae[0], ae[1]-1, ae[2]);
var unixDb=db.getTime();
var unixDe=de.getTime();
for(var k=unixDb;k<=unixDe;){
console.log((new Date(parseInt(k))).format());
k=k+24*60*60*1000;
}
}
getAll('2016-06-24','2016-08-25');
原生JS
var date_all=[],i=0;
function getDate(datestr){
var temp = datestr.split("-");
var date = new Date(temp[0],temp[1]-1,temp[2]);
console.log(date);
return date;
}
var start = "2016-09-27";
var end = "2017-01-05";
var startTime = getDate(start);
var endTime = getDate(end);
while((endTime.getTime()-startTime.getTime())>=0){
var year = startTime.getFullYear();
var month = (startTime.getMonth()+1).toString().length==1?"0"+(startTime.getMonth()+1).toString():(startTime.getMonth()+1).toString();
var day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate();
date_all[i]=year+"-"+month+"-"+day;
startTime.setDate(startTime.getDate()+1);
i+=1;
}
JQuery 判断两个日期相差多少天,Math.abs是取绝对值,可以去掉该函数判断sDate1和sDate2
var days = daysBetween('2016-11-01','2016-11-02');
/**
* 根据两个日期,判断相差天数
* @param sDate1 开始日期 如:2016-11-01
* @param sDate2 结束日期 如:2016-11-02
* @returns {number} 返回相差天数
*/
function daysBetween(sDate1,sDate2){
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
var time1 = Date.parse(new Date(sDate1));
var time2 = Date.parse(new Date(sDate2));
var nDays = Math.abs(parseInt((time2 - time1)/1000/3600/24));
return nDays;
};