JS获取周、月、季度当前上下起始日期与结束日

本文介绍如何使用JavaScript进行时间初始化,包括获取某月天数、季度初始化、确定季度和周的起始及结束日期,适用于前端开发中的日期处理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间初始化

var now = new Date();
var nowDayOfWeek = now.getDay();
var nowDay = now.getDate();
var nowMonth = now.getMonth();
var nowYear = now.getYear();
nowYear += (nowYear < 2000) ? 1900 : 0;

function formatDate(date) {      
    var year = date.getFullYear();     
    var month = date.getMonth()+1;     
    var weekday = date.getDate();      
         
    if(month < 10){     
        month = "0" + month;     
    }      
    if(weekday < 10){     
        weekday = "0" + weekday;     
    }     
    return (year+"-"+month + "-" + weekday);      
}
获得某月的天数
function getMonthDays(myMonth){     
    var monthStartDate = new Date(nowYear, myMonth, 1);      
    var monthEndDate = new Date(nowYear, myMonth + 1, 1);      
    var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);      
    return days;      
}
季度的初始化
//获得本季度的开始月份  
function getQuarterStartMonth(){     
    var quarterStartMonth = 0;     
    if(nowMonth<3){     
       quarterStartMonth = 0;     
    }     
    if(2<nowMonth && nowMonth<6){     
       quarterStartMonth = 3;     
    }     
    if(5<nowMonth && nowMonth<9){     
       quarterStartMonth = 6;     
    }     
    if(nowMonth>8){     
       quarterStartMonth = 9;     
    }     
    return quarterStartMonth;     
}
//获得上季度的开始月份     
function getLastQuarterStartMonth(){     
    var quarterStartMonth = 0;     
    if(nowMonth<3){     
       quarterStartMonth = 9;     
    }     
    if(2<nowMonth && nowMonth<6){     
       quarterStartMonth = 0;     
    }     
    if(5<nowMonth && nowMonth<9){     
       quarterStartMonth = 3;     
    }     
    if(nowMonth>8){     
       quarterStartMonth = 6;     
    }     
    return quarterStartMonth;     
}

//获得下季度的开始月份     
function getNextQuarterStartMonth(){     
    var quarterStartMonth = 0;     
    if(nowMonth<3){     
       quarterStartMonth = 3;     
    }     
    if(2<nowMonth && nowMonth<6){     
       quarterStartMonth = 6;     
    }     
    if(5<nowMonth && nowMonth<9){     
       quarterStartMonth = 9;     
    }     
    if(nowMonth>8){     
       quarterStartMonth = 0;     
    }     
    return quarterStartMonth;     
}
季度开始或结束日期
//获得本季度的开始日期     
function getQuarterStartDate(){     
         
    var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);      
    return formatDate(quarterStartDate);     
}
    
//或的本季度的结束日期     
function getQuarterEndDate(){     
    var quarterEndMonth = getQuarterStartMonth() + 2;     
    var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));      
    return formatDate(quarterStartDate);     
}

//获得上季度的开始日期     
function getLastQuarterStartDate(){     
    var quarterStartDate;
    if (nowMonth<6) {
        quarterStartDate = new Date(nowYear - 1, getLastQuarterStartMonth(), 1); 
    } else {
        quarterStartDate = new Date(nowYear, getLastQuarterStartMonth(), 1);
    }
    return formatDate(quarterStartDate);     
}

//或的上季度的结束日期     
function getLastQuarterEndDate(){   
    console.log(getLastQuarterStartMonth());  
    var quarterEndMonth = getLastQuarterStartMonth() + 2;
    var quarterStartDate;
    if (nowMonth<6) {
        quarterStartDate = new Date(nowYear - 1, quarterEndMonth, getMonthDays(quarterEndMonth));
    } else {
        quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
    }
    return formatDate(quarterStartDate);     
}

//获得下季度的开始日期     
function getNextQuarterStartDate(){     
    var quarterStartDate;
    if (nowMonth>8) {
        quarterStartDate = new Date(nowYear + 1, getNextQuarterStartMonth(), 1); 
    } else {
        quarterStartDate = new Date(nowYear, getNextQuarterStartMonth(), 1);
    }
    return formatDate(quarterStartDate);     
}

//或的下季度的结束日期     
function getNextQuarterEndDate(){   
    console.log(nowMonth);  
    var quarterEndMonth = getNextQuarterStartMonth() + 2;
    var quarterStartDate;
    if (nowMonth>8) {
        quarterStartDate = new Date(nowYear + 1, quarterEndMonth, getMonthDays(quarterEndMonth));
    } else {
        quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
    }
    return formatDate(quarterStartDate);     
}

周开始或结束日期
//获得本周的开始日期     
function getWeekStartDate() {      
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);      
    return formatDate(weekStartDate);     
}

//获得本周的结束日期     
function getWeekEndDate() {      
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));      
    return formatDate(weekEndDate);     
}

//获得上周的开始日期     
function getLastWeekStartDate() {
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);      
    return formatDate(weekStartDate);     
}

//获得上周的结束日期     
function getLastWeekEndDate() {      
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek) - 7);      
    return formatDate(weekEndDate);     
}

//获得下周的开始日期     
function getNextWeekStartDate() {
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 7);      
    return formatDate(weekStartDate);     
}

//获得下周的结束日期     
function getNextWeekEndDate() {      
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek) + 7);      
    return formatDate(weekEndDate);     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值