javaScript返回某个日期,月、季度、年、半年

该博客主要介绍了两个JavaScript函数,用于计算日期:calDate()根据给定的周期(月、季、年、半年)向前或向后推算日期,calDay()则是在指定日期上增加天数。函数中涉及到日期的加减操作,并处理了2月的特殊情况。这些函数对于处理日期计算的场景非常实用。
/**
 * @param jhszrq_init yyyy-MM-dd
 * @param jfzq_val 0月、1季度、2年、3半年
 * 返回yyyy-MM-dd日期
 */
function calDate(jhszrq_temp, jfzq_val) {
    let date = jhszrq_temp ? new Date(jhszrq_temp) : new Date();
    let oYear = date.getFullYear();
    let oMonth = date.getMonth() + 1;
    let oDay = date.getDate();
    if (String(jfzq_val) === "0") {
        //月
        oYear = oMonth > 11 ? (oYear + 1) : oYear;
        oMonth = oMonth > 11 ? (oMonth - 11) : (oMonth + 1);
    } else if (String(jfzq_val) === "1") {
        //季度
        oYear = oMonth > 9 ? (oYear + 1) : oYear;
        oMonth = oMonth > 9 ? (oMonth - 9) : (oMonth + 3);
    } else if (String(jfzq_val) === "2") {
        //年
        oYear = oYear + 1;
    } else if (String(jfzq_val) === "3") {
        //半年
        oYear = oMonth > 6 ? (oYear + 1) : oYear;
        oMonth = oMonth > 6 ? (oMonth - 6) : (oMonth + 6);
    }
    if (+oDay > 28 && oMonth === 2) {
        oDay = 28;//如果计算后是2月份,固定返回02-28
    }
    let oTime = oYear + '-' + getzf(oMonth) + '-' + getzf(oDay);//最后拼接时间
    return oTime;
}

// 给日期dateStr“yyyy-MM-dd”加上dayNumber天
function calDay(dateStr, dayNumber) {
    let date = dateStr ? new Date(dateStr) : new Date();
    let ms = dayNumber * (1000 * 60 * 60 * 24);
    let oDate = new Date(date.getTime() + ms);
    let oYear = oDate .getFullYear();
    let oMonth = oDate .getMonth() + 1;
    let oDay = oDate .getDate();
    let oTime = oYear + '-' + getzf(oMonth) + '-' + getzf(oDay);//最后拼接时间
    return oTime;
}

//补0操作
function getzf(num) {
    if (parseInt(num) < 10) {
        num = '0' + num;
    }
    return num;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值