js获取所在月开始+结束

107 阅读1分钟
function getMonthStartAndEnd(dateStr) {
    const date = new Date(dateStr);
    const year = date.getFullYear();
    const month = date.getMonth();
    const startOfMonth = new Date(year, month, 1); // 当月第一天
    let endOfMonth = new Date(year, month + 1, 0); // 当月最后一天

    // 格式化日期为 yyyy-mm-dd
    const formatDate = (date) => {
        const d = new Date(date);
        let month = '' + (d.getMonth() + 1);
        let day = '' + d.getDate();
        let year = d.getFullYear();

        if (month.length < 2) 
            month = '0' + month;
        if (day.length < 2) 
            day = '0' + day;

        return [year, month, day].join('-');
    };

    return {
        start: formatDate(startOfMonth),
        end: formatDate(endOfMonth)
    };
}

// 使用示例
const monthDates = getMonthStartAndEnd('2024-04-18');
console.log(`Month starts on: ${monthDates.start} and ends on: ${monthDates.end}`);