You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.8 KiB
JavaScript

4 weeks ago
// utils/RequestParamUtil.js
class RequestParamUtil {
/**
* 判断日期是前天昨天还是今天
* @param {string} cachedDate - 缓存的日期字符串格式为 yyyy-MM-dd-HH-mm
* @returns {number} 前天返回2昨天返回1今天返回0其他情况返回-1
*/
static judgeRecentDate(cachedDate) {
// 验证日期格式
if (!/^\d{4}-\d{2}-\d{2}-\d{2}-\d{2}$/.test(cachedDate)) {
console.error('日期格式不正确,应为 yyyy-MM-dd-HH-mm');
return -1;
}
// 提取日期部分(忽略时间)
const dateStr = cachedDate.split('-').slice(0, 3).join('-');
// 转换为Date对象
const cachedDateObj = new Date(dateStr);
if (isNaN(cachedDateObj.getTime())) {
console.error('无效的日期');
return -1;
}
// 获取今天、昨天、前天的日期
const today = new Date();
today.setHours(0, 0, 0, 0);
const yesterday = new Date(today);
yesterday.setDate(yesterday.getDate() - 1);
const dayBeforeYesterday = new Date(today);
dayBeforeYesterday.setDate(dayBeforeYesterday.getDate() - 2);
// 比较日期
if (this.isSameDay(cachedDateObj, today)) {
return 0; // 今天
} else if (this.isSameDay(cachedDateObj, yesterday)) {
return 1; // 昨天
} else if (this.isSameDay(cachedDateObj, dayBeforeYesterday)) {
return 2; // 前天
} else {
return -1; // 更早的日期
}
}
/**
* 判断两个Date对象是否是同一天
* @param {Date} date1
* @param {Date} date2
* @returns {boolean}
*/
static isSameDay(date1, date2) {
return date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate();
}
}
export default RequestParamUtil;