js格式化时间(几秒钟前,几分钟前,几小时前,几天前...)

926 阅读1分钟

js格式化时间(几秒钟前,几分钟前,几小时前,几天前...)

function time(timestamp){
        var d_seconds,
        d_minutes,
        d_hours,
        d_days,
        timeNow = parseInt(new Date().getTime()/1000),
        d,

        date = new Date(timestamp*1000),//时间戳为10位需*1000,时间戳为13位的话不需乘1000
        Y = date.getFullYear(),
        M = date.getMonth() + 1,
        D = date.getDate(),
        H = date.getHours(),
        m = date.getMinutes(),
        s = date.getSeconds();
        //小于10的在前面补0
        if (M < 10) {
            M = '0' + M;
        }
        if (D < 10) {
            D = '0' + D;
        }
        if (H < 10) {
            H = '0' + H;
        }
        if (m < 10) {
            m = '0' + m;
        }
        if (s < 10) {
            s = '0' + s;
        }

    d =timeNow-timestamp;
    d_days = parseInt(d/86400);
    d_hours = parseInt(d/3600);
    d_minutes = parseInt(d/60);
    d_seconds = parseInt(d);
    console.log(d_days);
    
    if(d_days > 0 && d_days < 3){
        return d_days + '天前';
    }else if(d_days <= 0 && d_hours > 0){
        return d_hours + '小时前';
    }else if(d_hours <= 0 && d_minutes > 0){
        return d_minutes + '分钟前';
    }else if (d_seconds < 60) {
        if (d_seconds <= 0) {
            return '刚刚发表';
        }else {
            return d_seconds + '秒前';
        }
    }else if (d_days >= 3 && d_days < 30){
        return M + '-' + D + ' ' + H + ':' + m;
    }else if (d_days >= 30) {
        return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
    }
}

第二种

function time(timestamp){
    var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
        var Y = date.getFullYear();
        var M =
          (date.getMonth() + 1 < 10
            ? "0" + (date.getMonth() + 1)
            : date.getMonth() + 1);
        var D = date.getDate()<10?"0"+date.getDate():date.getDate();
        var h = date.getHours()<10?"0"+date.getHours():date.getHours();
        var m = date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes();
        var s = date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds();
        
        
        var mistiming = Math.round(new Date() / 1000)-timestamp;
        var postfix = mistiming>0 ? '前' : '后'
        mistiming = Math.abs(mistiming)
        
        
        // var arrr = ['年','个月','星期','天','小时','分钟','秒'];
        // var arrn = [31536000,2592000,604800,86400,3600,60,1];
        var arrr = ['小时','分钟','秒'];
        var arrn = [3600,60,1];
        
        if(mistiming>18000){
          return Y +"-"+ M+ "-"+ D+" " + h+":" + m+":" + s;
        }else{
          for(var i=0; i<3; i++){
            var inm = Math.floor(mistiming/arrn[i])
            if(inm!=0){
                return inm+arrr[i] + postfix
            }
        }
        }
}