js 逆向思维 快速获取两个日期时间差 年,月,日,时,分,秒 的值

 if (!isNaN(Date.parse(time1)) && !isNaN(Date.parse(time2))) {
        let t1 = Date.parse(time1);
        let t2 = Date.parse(time2);
        const num = t1 > t2 ? t1 - t2 : t2 - t1;
        const miu = 1000 * 60 * 60 * 8;
        const time = new Date(num - miu);
        let Year = time.getFullYear() - 1970;
        let Month = time.getMonth();
        let day = time.getDate() - 1;
        let Hour = time.getHours();
        let Minutes = time.getMinutes();
        let Second = time.getSeconds()

        return { "time": num, Year, Month, day, Hour, Minutes, Second }

    }
  1. Date.parse() :
    parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
  2. isNaN ()
    如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
  3. 两个时间 相减 可以获取相差的毫秒数
  4. 创建一个 new Date(0) 返回的时间是 1970-01-01 08:00:00 的时间在这里插入图片描述
    5, 减去8个小时的毫秒数, 得到 1970-01-01 00:00:00 的时间
    6, 只要给Date 一个毫秒数,都会返回一个时间,在1970-01-01 08:00:00 的基础上
    在这里插入图片描述
    在这里插入图片描述
	// 得到一个时间日期
	const time = new Date(num - miu);
	//  减去 1970   的到年
        let Year = time.getFullYear() - 1970;
        // 获取月份 0-11
        let Month = time.getMonth();
        // 减去 1 天,获取天数差
        let day = time.getDate() - 1;
        let Hour = time.getHours();
        let Minutes = time.getMinutes();
        let Second = time.getSeconds()

在这里插入图片描述
可以看到两个时间相差 的 年,月,日,时,分,秒
在这里插入图片描述
7.根据返回的值

if (dateDiff.done) {
            if (dateDiff.time < 31536000000) {
                if (dateDiff.time < 2592000000) {
                    if (dateDiff.time < 86400000) {
                        if (dateDiff.time < 360000) {
                            if (dateDiff.time < 60000) {
                                if (dateDiff.time < 10000) {
                                    return `刚刚`
                                }
                                return `${dateDiff.Second}秒之前`
                            }
                            return `${dateDiff.Minutes}分钟之前`
                        }
                        return `${dateDiff.Hour}小时之前`
                    }
                    return `${dateDiff.day}天之前`
                }
                return `${dateDiff.Month}个月之前`
            }
            return `${dateDiff.Year}年之前`
        }
        return '错误类型'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值