js 將時間戳 轉化爲 剛剛, 幾分鐘前,幾小時前,幾周前,年月日……

js 將時間戳 轉化爲 剛剛, 幾分鐘前,幾小時前,幾周前,年月日……

在這裏插入圖片描述
js封裝
/
*
** 時間戳顯示爲多少分鐘前,多少天前的處理
** eg.
** console.log(timeago(1559102804000)); // 2014年09月19日
** console.log(timeago(1558325204000)); // 1周前
** console.log(timeago(1505283100802)); // 1分鐘前
*/
var timeago = function(timestamp) {
// 補全爲13位
var arrTimestamp = (timestamp + ‘’).split(’’);
for (var start = 0; start < 13; start++) {
if (!arrTimestamp[start]) {
arrTimestamp[start] = ‘0’;
}
}
timestamp = arrTimestamp.join(’’) * 1;
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var halfamonth = day * 15;
var month = day * 30;
var now = new Date().getTime();
var diffValue = now - timestamp;

// 如果本地時間反而小於變量時間
if (diffValue < 0) {
    return '不久前';
}

// 計算差異時間的量級
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
// 數值補0方法
var zero = function(value) {
    if (value < 10) {
        return '0' + value;
    }
    return value;
};

// 使用
if (weekC >= 1) {
    return (function() {
        var date = new Date(timestamp);
        return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
    })();
} else if (dayC >= 1) {
    return parseInt(dayC) + "天前";
} else if (hourC >= 1) {
    return parseInt(hourC) + "小時前";
} else if (minC >= 1) {
    return parseInt(minC) + "分鐘前";
} else {
    return '剛剛';
}
// 使用
// if (monthC > 12) {
//     // 超過1年,直接顯示年月日
//     return (function() {
//         var date = new Date(timestamp);
//         return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
//     })();
// } else if (monthC >= 1) {
//     return parseInt(monthC) + "月前";
// } else if (weekC >= 1) {
//     return parseInt(weekC) + "周前";
// } else if (dayC >= 1) {
//     return parseInt(dayC) + "天前";
// } else if (hourC >= 1) {
//     return parseInt(hourC) + "小時前";
// } else if (minC >= 1) {
//     return parseInt(minC) + "分鐘前";
// } else {
//     return '剛剛';
// }

};
export {
timeago
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章