昨天寫了一篇關于 js 中時間戳與日期格式之間相互轉換的文章,就是為了今天這篇文章做鋪墊的。那么今天就來說一說,js將時間轉換為幾秒前,幾分鐘前,幾小時前,幾天前的一個小方法。

本篇文章涉及到js中的時間戳與日期格式,可參考昨天的文章《js 時間戳與日期格式之間相互轉換的方法教程

例1:js將時間轉換為幾分鐘前,幾小時前,幾天前的方法

js函數

<script>
function timeFormat(time) {
    var nowTime = new Date();
    var day = nowTime.getDate();
    var hours = parseInt(nowTime.getHours());
    var minutes = nowTime.getMinutes();
    // 開始分解付入的時間
    var timeday = time.substring(8, 10);
    var timehours = parseInt(time.substring(11, 13));
    var timeminutes = time.substring(14, 16);
    var d_day = Math.abs(day - timeday);
    var d_hours = hours - timehours;
    var d_minutes = Math.abs(minutes - timeminutes);
    if (d_day <= 1) {
        switch (d_day) {
            case 0:
                if (d_hours == 0 && d_minutes > 0) {
                    return d_minutes + '分鐘前';
                } else if (d_hours == 0 && d_minutes == 0) {
                    return '1分鐘前';
                } else {
                    return d_hours + '小時前';
                }
                break;
            case 1:
                if (d_hours < 0) {
                    return (24 + d_hours) + '小時前';
                } else {
                    return d_day + '天前';
                }
                break;
        }
    } else if (d_day > 1 && d_day < 10) {
        return d_day + '天前';
    } else {
        return time;
    }
}
</script>

調用方式

<script>
console.log(timeFormat("2020-06-23 23:10:02"));  //37分鐘前
console.log(timeFormat("2020-06-23 22:10:02"));  //1小時前
console.log(timeFormat("2020-06-22 22:10:02"));  //1天前
console.log(timeFormat("2020-06-21 22:10:02"));  //2天前
</script>

例2:js將時間轉換為幾分鐘前,幾小時前,幾天前的方法

国产视频app例1的 js 演示函數,可以輸入日期格式的時間日期,其方法比較復雜一些,那么接下來就來一個簡單點的,直接輸入時間戳!

js自定義函數

<script>
//這里輸入的時間戳
function timeFormat(timestamp) {
    var mistiming = Math.round((Date.now() - timestamp) / 1000);
    var arrr = ['年', '個月', '周', '天', '小時', '分鐘', '秒'];
    var arrn = [31536000, 2592000, 604800, 86400, 3600, 60, 1];
    for (var i = 0; i < arrn.length; i++) {
        var inm = Math.floor(mistiming / arrn[i]);
        if (inm != 0) {
            return inm + arrr[i] + '前';
        }
    }
}
</script>

函數調用方法:

<script>
    console.log(timeFormat(1592928599000)); //10秒前
    console.log(timeFormat(1592928469000)); //2分鐘前
    console.log(timeFormat(1592844949000)); //23小時前
    console.log(timeFormat(1592064469000)); //1周前
    console.log(timeFormat(1581844949000)); //4個月前
    console.log(timeFormat(1522444949000)); //2年前
</script>