/**
* @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;
}
javaScript返回某个日期,月、季度、年、半年
于 2022-04-14 19:40:42 首次发布
该博客主要介绍了两个JavaScript函数,用于计算日期:calDate()根据给定的周期(月、季、年、半年)向前或向后推算日期,calDay()则是在指定日期上增加天数。函数中涉及到日期的加减操作,并处理了2月的特殊情况。这些函数对于处理日期计算的场景非常实用。

2469

被折叠的 条评论
为什么被折叠?



