有没有方法获取一段时间内指定年月日格式的数据?

function getDates (start,end){

}
getDates("2020-04-27", "2020-06-19")
// 返回['2020年4月27日一2020年4月30日','2020年5月1日一2020年5月31日','2020年6月1日一2020年6月19日']
阅读 1.4k
2 个回答
const _getMonthRange = (start, end) => {
    const result = [];
    /*
    const next = (cur) => {
        const result = new Date(cur.getTime());
        result.setMonth(cur.getMonth() + 1);
        result.setDate(1);
        return result;
    };
    */
    const initial = new Date(start.getTime());
    initial.setDate(1);
    let month = start.getMonth();
    const next = () => {
        const result = new Date(initial.getTime());
        result.setMonth(++month);        
        return result;
    };
    while ((start = next(/* start */)) < end) {
        result.push(start);
    }
    return result;
}

const _zeroTime = (d) => new Date(d - (d - d.getTimezoneOffset() * 60 * 1000) % (3600 * 1000 * 24));

const getRange = (start, end) => {
    start = _zeroTime(start), end = _zeroTime(end);
    return [..._getMonthRange(start, end).map((month) => {
        const end = new Date(month.getTime());
        end.setDate(0);
        const result = { start, end };
        start = month;
        return result;
    }), { start, end }];
}

// const range = getRange(new Date('2022-10-10'), new Date());

image.png

date = new Date("2020-04-27")
console.log(date.toLocaleDateString())
date.setMonth(date.getMonth() + 1)
console.log(date.toLocaleDateString())
date.setDate(0)
console.log(date.toLocaleDateString())

懂了吗?

推荐问题