日期的小记

133 阅读1分钟

HTML部分:

    let now = new Date()
    now.setHours(10)
    now.setDate(20)
    console.log(now.getTime()); // 时间戳
    console.log(+new Date);
    let now1 = new Date('2020-05-20 18:10:25')
    console.log(now - now1);
    let now2 = new Date(1211165135651)
    console.log(now , now1 , now2);
    let endTime = new Date()
    let i = 0
    function sayHi() {
        i++
        if (new Date() - endTime < 1000) return ;
        console.log('hi' , i);
        endTime = new Date()
    }

    setInterval (() => {
        sayHi()
    }, 500)
    
    console.log(JJ.getFriendlyTime(new Date('2020-05-21 12:10:25')));
    console.log(JJ.getFriendlyTime(new Date('2020-05-21 16:55:25')));
    console.log(JJ.getFriendlyTime(new Date('2020-05-21 18:45:25')));

Js部分:

let JJ = {
    repairZero(val) {
        return val < 10 ? ('0' + val) : val
    },
    getDateText() {
        return JJ.fmtDate('ymd')
    },
    getTimeText() {
        return JJ.fmtDate('hms')
    },
    getNow(fmt) {
        return this.fmtDate(new Date() , fmt)
    },
    fmtDate(now , type) {
        // let now = new Date()
        // 年、月、日、小时、分钟、秒、星期
        let yy = now.getFullYear()
        let mm = now.getMonth() + 1
        let dd = now.getDate()
        let hh = now.getHours()
        let mi = now.getMinutes()
        let ss = now.getSeconds()
        let ww = '星期' + '日一二三四五六'[now.getDay()]
        let str1 = [yy , this.repairZero(mm) , this.repairZero(dd)].join('-')
        let str2 = [this.repairZero(hh) , this.repairZero(mi) ,             this.repairZero(ss)].join(':')
        switch (type) {
            case 'ymd':
                return str1
            case 'hms':
                return str2
            case 'w':
                return ww
    
            default:
                return [str1 , str2].join(' ')
    }
},
getFriendlyTime(date) {
    let now = +new Date
    let s = (now - date) / 1000

    if (s < 60) 
        return '刚刚'
    else if (s < 60 * 60)
        return Math.floor(s / 60) + '分钟前'
    else if (s < 60 * 60 * 24)
        return Math.floor(s / 60 / 60) + '小时前'
    else return this.fmtDate(date)
}
}