判断两日期时间是否超过两年

// 比如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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值