求两个日期之间的有效日期

function RealDate(start,end){
            const dayTimes = 24*60*60*1000; // 换算成一天的毫秒数
            const range = end.getTime() - start.getTime();
            let total = 0;
            res = [];
            //用于判断total+start.getTime()是否小于等于end.getTime(),或者end.getTime()是否大于start.getTime()
            while(total <= range && range > 0 ) {    
                res.push(new Date(start.getTime() + total).toLocaleDateString().replace(/\//g,'-'))
                total += dayTimes
            }
            return res;
}
var start = "2022-09-04";
var end = "2022-09-13";
var arr = RealDate(new Date(start),new Date(end))
console.log(arr)

主要思路是换算成毫秒级别。采用new Date(ms),此ms表示的是需要与 GMT时间1970年1月1日之间相差的毫秒数。这样一来不需要自己判断每个月的天数,会自动转换。而toLocaleDateString()是根据该日期的日期格式的字符串。后面的正则,是因为不同浏览器toLocaleString的结果可能会出现’2019/09/02’的格式,所以替换。

total+start.getTime()<=end.getTime()
total<=end.getTime()-start.getTime()
total<=range
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值