js把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式

2017-09-13 20:33:04来源:CSDN作者:wwj791859814人点击

分享

时间转换成几秒前、几分钟前、几小时前、几天前等的格式,后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示成几秒前、几分钟前、几小时前、几天前的形式。
1.由于返回的时间是字符串格式,所以要先转换成时间戳

//字符串转换为时间戳function getDateTimeStamp (dateStr) {    return Date.parse(dateStr.replace(/-/gi,"/"));}

2.将返回的时间戳与当前时间戳进行比较,转换成几秒前、几分钟前、几小时前、几天前的形式。

function getDateDiff (dateStr) {    var publishTime = getDateTimeStamp(dateStr)/1000,        d_seconds,        d_minutes,        d_hours,        d_days,        timeNow = parseInt(new Date().getTime()/1000),        d,        date = new Date(publishTime*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 - publishTime;    d_days = parseInt(d/86400);    d_hours = parseInt(d/3600);    d_minutes = parseInt(d/60);    d_seconds = parseInt(d);    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 + '&nbsp;' + H + ':' + m;    }else if (d_days >= 30) {        return Y + '-' + M + '-' + D + '&nbsp;' + H + ':' + m;    }}    

3.使用方法:
dateStr:返回的时间字符串,格式如:2015-07-30 09:36:10

// 转换后的结果 var str = getDateDiff(dateStr);// 在控制台输出结果 console.log(str);

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台