需要注意的是,下面方法不要传入时间戳,请传入标准的日期格式,否则会有跨时区问题。可参照下面的使用示例。
方法
function getYesterdayDate(date) {
let ---- = ---- ? new Date(----) : new Date();
let - = "";
let - = "";
let - = "";
let Y = ----.getFullYear();
let M = ----.getMonth() + 1;
let D = ----.getDate();
- = Y
if (D !== 1) {
- = M < 10 ? '0' + M : M;
- = (D - 1) < 10 ? '0' + (D - 1) : (D - 1);
} else {
M = M - 1;
if (M === 0) {
- = Y - 1;
- = 12;
- = 31;
} else {
- = M < 10 ? '0' + M : M;
switch (-) {
case 2:
if (Y % 4 == 0 && Y % 100 != 0 || Y % 400 == 0) {
- = 29;
} else {
- = 28;
}
break;
case 4:
- = 30;
break;
case 6:
- = 30;
break;
case 9:
- = 30;
break;
case 11:
- = 30;
break;
default:
- = 31;
}
}
}
return - + "/" + - + "/" + -;
}
使用示例
当前日期的昨日
getYesterdayDate(); // 2023/07/23
指定日期的昨日
getYesterdayDate("2023/07/23"); // 2023/07/22