JavaScript获取昨日日期的方法

需要注意的是,下面方法不要传入时间戳,请传入标准的日期格式,否则会有跨时区问题。可参照下面的使用示例。

方法

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