1. 程式人生 > >js jq插件 顯示中文時間戳 剛剛 N分鐘前 N小時前 今天 上午 下午

js jq插件 顯示中文時間戳 剛剛 N分鐘前 N小時前 今天 上午 下午

++ xtend sta 本地 () 數值 pos parse get

    $.fn.extend({
        /*
        ** 時間戳顯示為【不久前,剛剛,N分鐘前,N小時前,N天前,N周前,N月前,N年N月N日】的處理
        ** eg.
        ** $(‘1517451000000‘).commonTimeStamp();  // 2018年02月01日
        ** $(new Date(‘2018-02-01 15:10:00‘).getTime()).commonTimeStamp();  // 1分鐘前
        */
        "commonTimeStamp": function () {
            
// 補全為13位 var arrTimestamp = (this.selector || $(this)[0] + ‘‘).split(‘‘), zero = function (value) { // 數值補0方法 if (value < 10) { return 0 + value; } return value; }, arrTime
= { minute: 60000, // 1000 * 60, hour: 3600000, // 1000 * 60 * 60, day: 86400000, //1000 * 60 * 60 * 24, week: 604800000, // 1000 * 60 * 60 * 24 * 7, halfamonth: 1296000000, // 1000 * 60 * 60 * 24 * 15,
month: 2592000000, //1000 * 60 * 60 * 24 * 30, now: new Date().getTime() }; for (var start = 0; start < 13; start++) { if (!arrTimestamp[start]) { arrTimestamp[start] = 0; } } arrTimestamp = arrTimestamp.join(‘‘) * 1; arrTime.diffValue = new Date().getTime() - arrTimestamp; // 如果本地時間反而小於變量時間 if (arrTime.diffValue < 0) { return 不久前; } // 計算差異時間的量級 var arrTimeDiff = { monthC: arrTime.diffValue / arrTime.month, weekC: arrTime.diffValue / arrTime.week, dayC: arrTime.diffValue / arrTime.day, hourC: arrTime.diffValue / arrTime.hour, minC: arrTime.diffValue / arrTime.minute, }; // 使用 if (arrTimeDiff.monthC > 12) { // 超過1年,直接顯示年月日 return (function () { var date = new Date(arrTimestamp); return date.getFullYear() + + zero(date.getMonth() + 1) + + zero(date.getDate()) + ; })(); } else if (arrTimeDiff.monthC >= 1) { return parseInt(arrTimeDiff.monthC) + "月前"; } else if (arrTimeDiff.weekC >= 1) { return parseInt(arrTimeDiff.weekC) + "周前"; } else if (arrTimeDiff.dayC >= 1) { return parseInt(arrTimeDiff.dayC) + "天前"; } else if (arrTimeDiff.hourC >= 1) { return parseInt(arrTimeDiff.hourC) + "小時前"; } else if (arrTimeDiff.minC >= 1) { return parseInt(arrTimeDiff.minC) + "分鐘前"; } return 剛剛; }, /* ** 時間戳顯示為【今天 上午10:10,今天 下午15:10,昨天 上午10:10,昨天 下午15:10,上午10:10,下午15:10】的處理 ** eg. ** $(‘1517451000000‘).specificTimeStamp(); // 今天 上午10:10 ** $(new Date(‘2018-02-01 15:10:00‘).getTime()).specificTimeStamp(); // 今天 下午15:10 */ "specificTimeStamp": function () { var arrTimestamp = this.selector || $(this)[0] - 0, parTime = new Date(arrTimestamp), diffDay = parseInt((new Date().getTime() - arrTimestamp) / (1000 * 60 * 60 * 24)); // 使用 return ((diffDay >= 1 && diffDay <= 2) ? "昨天 " : (diffDay >= 0 && diffDay <= 1) ? "今天 " : "") + ((parTime.getHours() / 12 > 1 ? "下午" : "上午") + parTime.getHours() + ":" + parTime.getMinutes()); } });

js jq插件 顯示中文時間戳 剛剛 N分鐘前 N小時前 今天 上午 下午