js 根据起始时间获取中间所有的天数
2019-02-20 本文已影响0人
宁宁宁66
<script>
// 获取间隔天数
function getDays(day1, day2) {
// 获取入参字符串形式日期的Date型日期
var d1 = day1.getDate();
var d2 = day2.getDate();
// 定义一天的毫秒数
var dayMilliSeconds = 1000*60*60*24;
// 获取输入日期的毫秒数
var d1Ms = d1.getTime();
var d2Ms = d2.getTime();
// 定义返回值
var ret;
// 对日期毫秒数进行循环比较,直到d1Ms 大于等于 d2Ms 时退出循环
// 每次循环结束,给d1Ms 增加一天
for (d1Ms; d1Ms <= d2Ms; d1Ms += dayMilliSeconds) {
// 如果ret为空,则无需添加","作为分隔符
if (!ret) {
// 将给的毫秒数转换为Date日期
var day = new Date(d1Ms);
// 获取其年月日形式的字符串
ret = day.getYMD();
} else {
// 否则,给ret的每个字符日期间添加","作为分隔符
var day = new Date(d1Ms);
ret = ret + ',' + day.getYMD();
}
}
alert(ret); // 或可换为return ret;
}
// 给Date对象添加getYMD方法,获取字符串形式的年月日
Date.prototype.getYMD = function(){
var retDate = this.getFullYear() + "-"; // 获取年份。
retDate += this.getMonth() + 1 + "-"; // 获取月份。
retDate += this.getDate(); // 获取日。
return retDate; // 返回日期。
}
// 给String对象添加getDate方法,使字符串形式的日期返回为Date型的日期
String.prototype.getDate = function(){
var strArr = this.split('-');
var date = new Date(strArr[0], strArr[1] - 1, strArr[2]);
return date;
}
getDays('2019-03-30', '2019-04-01');
</script>