2021/02/18 字符串日期和时间戳转换及日期大小比较

  • 背景
    点击表单提交的时候,将提交表单的当前时间和表单自身用户设置的截止时间进行比较。如果当前日期≥「截止日期」,则审核通过,否则不能通过;本质上就是比较时间大小。
    比较的时候还要看是否精确到毫秒
  • 时间戳进行日期大小比较
    -如果有这种情况,建议使用时间戳来比较大小,比如2021.01.01和2021.01.01,这种当天的比较,当前日期是一月一日,截止日期也是一月一日,这样比较时间=就是成立的,而用时间戳每次获取的当前时间都是不同的,及时都是一月一日也是无法成立相等条件

1.获取当前时间

//当前时间的字符串形式
 let currentTime = Date.parse(new Date()) / 1000;

2.将当前时间转换为时间戳

//Method是封装的日期字符串和时间戳转换方法 放在文章最后
currentTime = Method.formatDate(currentTime, 'date');

3.和截止日期进行比较 我这里的截止日期是后端直接返回的时间戳格式,不用做处理

if (endTime <= currentTime) {
    // console.log('通过');
} else {
    // console.log('no');
}

  • 字符串日期比较大小
//当前时间的字符串形式
let curTime = Date.parse(new Date()) / 1000;//不算毫秒
//截止日期
let tempTime = "2021-02-19";
//比较大小
let result = Date.parse(curTime.trim().replace(/-/g, '/')) >= Date.parse(tempTime.trim().replace(/-/g, '/'));

if (result) { console.log('通过') }
else { console.log('提示') }

–比较方法在网上学的,年前做的找不到链接了,可以直接看效果


  • 日期转换方法 公司大佬封装的方法
export default {

    /*
     * 时间戳转成日期时间格式
     * @params time 传入时间戳,必需
     * @params rules 转换规则,返回格式配置,默认返回date格式
     */
    formatDate(time, rules) {
        if (!time) {
            return;
        }
        var result = "";
        if (typeof time === "string" || typeof time === "number") {
            time = new Date(time * 1000);
            var   year = time.getFullYear();
            var   month = (time.getMonth()+1) > 9 ? (time.getMonth()+1) : "0" + (time.getMonth()+1);
            var   date = time.getDate() > 9 ? time.getDate() : "0" + time.getDate();
            var   hour = time.getHours();
            var   minute = time.getMinutes();
            var   second = time.getSeconds();

            if (rules) {
                switch (rules) {
                    case 'datetime':
                        result = year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
                        break;
                    case 'date':
                        result = year + '-' + month + '-' + date;
                        break;
                }
            } else {
                result = year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
            }
        }
        return result;
    },

    /*
     * 将日期格式转成时间戳格式
     * @params time 传入时间戳,必需
     * @params exact 是否精确到毫秒,默认为false
     */
    formatUnixTime(time, exact) {
        if (!time) {
            return;
        }
        var result = Date.parse(new Date(time));
        if (exact !== true) {
            result = result / 1000;
        }
        return result;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值