JS面试手写:求两个日期中间的有效日期

235 阅读1分钟

求两个日期中间的有效日期:如 2015-2-8 到 2015-3-3,返回【2015-2-8 2015-2-9…2015-3-2】,需要考虑闰年。

题解:

思路就是从开始时间一天天往上加,直到到结束时间为止

function rangeDay (day1, day2) {
    const result = [] //保存结果的数组
    const dayTimes = 24*60*60*1000 // 一天的时间(毫秒)
    const startTime = day1.getTime() // 开始的时间
    const range = day2.getTime() - startTime // 开始时间到结束时间的范围
    let total = 0 // 当前时间
    while (total <= range && range > 0) { // 如果当前时间在范围内
        result.push(new Date(startTime + total).toLocaleDateString().replace(/\//g, '-'))
        total += dayTimes
    }
    return result
};
rangeDay(new Date("2015-02-08"), new Date("2015-03-03"))