// 比如2023-03-18 00:00:00 - 2025-03-17 00:00:00 则通过校验, 2023-03-17 00:00:00 - 2025-03-17 00:00:00 就不通过校验
// 引入 moment.js 库
const moment = require('moment');
// 假设用户输入的两个日期字符串
const date1 = '2021-05-15 14:30:00';
const date2 = '2023-05-16 14:30:00';
// 使用 moment 解析日期
const momentDate1 = moment(date1, 'YYYY-MM-DD HH:mm:ss');
const momentDate2 = moment(date2, 'YYYY-MM-DD HH:mm:ss');
// 计算两个日期之间的差异(以年为单位)
const diffInYears = momentDate2.diff(momentDate1, 'years');
// 判断是否超过两年
if (diffInYears > 2) {
console.log('这两个日期超过两年');
} else if (diffInYears === 2) {
// 如果刚好是两年,还需要判断月份和日期
const diffInMonths = momentDate2.diff(momentDate1, 'months');
if (diffInMonths > 24) {
console.log('这两个日期超过两年');
} else {
console.log('这两个日期不超过两年');
}
} else {
console.log('这两个日期不超过两年');
}
// 比如2023-03-18 00:00:00 - 2025-03-18 00:00:00 则通过校验, 2023-03-17 00:00:00 - 2025-03-18 00:00:00 就不通过校验
let isMore = false;
// 1. 当分析维度选择“月份”时,取消“时间范围不允许超过一个月”的限制, 改为两年
// 假设用户输入的两个日期字符串
const date1 = this.analyseQuery.time[0];
const date2 = this.analyseQuery.time[1];
// 使用 moment 解析日期
const momentDate1 = moment(date1, 'YYYY-MM-DD HH:mm:ss');
const momentDate2 = moment(date2, 'YYYY-MM-DD HH:mm:ss');
// 计算两个日期之间的差异(以年为单位)
const diffInYears = momentDate2.diff(momentDate1, 'years');
const diffInMonths = momentDate2.diff(momentDate1, 'months');
const diffInDays = momentDate2.diff(momentDate1, 'days');
console.log(diffInYears, diffInMonths, diffInDays, 'diffInDays');
// 判断是否超过两年
if (diffInYears > 2) {
console.log('这两个日期超过两年');
isMore = true;
} else if (diffInYears === 2) {
// 如果刚好是两年,还需要判断月份和日期
if (diffInMonths > 24 || (diffInMonths === 24 && diffInDays > 731)) {
console.log('这两个日期超过两年');
isMore = true;
} else {
console.log('这两个日期不超过两年');
isMore = false;
}
} else {
console.log('这两个日期不超过两年');
isMore = false;
}
if (isMore) {
noticeStore.setLastError({effect: 1, tip: `时间范围不允许超过两年`});
return false;
}