注:页面需提前引用JQ
; $.fn.extend({ /* ** notes: 获取13位时间戳的简单操作 ** new Date('2018-02-01 15:10:00').getTime() // Date类型使用getTime方法 ** "/Date(1517469000000)/".substring(6,19) // C#后台返回的DateTime数据 */ /* ** author:lttr <www.cnblogs.com/GoCircle> ** date:2018-02-01 ** 对13位时间戳的扩展显示为【不久前,刚刚,N分钟前,N小时前,N天前,N周前,N月前,N年N月N日】的处理 ** eg. ** $(1517469000000).commonTimeStamp(); // 1分钟前 */ "commonTimeStamp": function () { let selfTime = ((this.selector || $(this)[0]) + Array(13).join('0')).slice(0, 13) - 0, // 补全为13位 PHP时间戳为10位 oneselfDate = new Date(selfTime), diffValue = new Date().getTime() - selfTime, monthC = diffValue / 2592000000,// 月1000 * 60 * 60 * 24 * 30 weekC = diffValue / 604800000, // 周1000 * 60 * 60 * 24 * 7 dayC = diffValue / 86400000, // 天1000 * 60 * 60 * 24 hourC = diffValue / 3600000, // 时1000 * 60 * 60 minC = diffValue / 60000; // 分1000 * 60 return diffValue < 0 ? '不久前' :// 如果本地时间反而小于变量时间 monthC > 12 ? (oneselfDate.getFullYear() + '年' + Array(2 - ('' + oneselfDate.getMonth() + 1).length + 1).join(0) + (oneselfDate.getMonth() + 1) + '月' + Array(2 - ('' + oneselfDate.getDate()).length + 1).join(0) + oneselfDate.getDate() + '日') : // 超过1年,直接显示年月日 monthC >= 1 ? (parseInt(monthC) + '月前') : weekC >= 1 ? (parseInt(weekC) + '周前') : dayC >= 1 ? (parseInt(dayC) + '天前') : hourC >= 1 ? (parseInt(hourC) + '小时前') : minC >= 1 ? (parseInt(minC) + '分钟前') : '刚刚'; }, /* ** author:lttr <www.cnblogs.com/GoCircle> ** date:2018-10-22 ** 对13位时间戳的扩展显示为【今天 上午N:N,昨天 上午N:N,上午N:N】的处理 ** eg. ** $(1517469000000).specificTimeStamp(); // 下午15:10 */ "specificTimeStamp": function () { let oneselfTime = new Date('2018-10-21 00:00:00').getTime(), // 补全为13位 PHP时间戳为10位 parTime = new Date(oneselfTime), diffDay = parseInt((new Date().getTime() - oneselfTime) / 86400000);// 天1000 * 60 * 60 * 24 return (diffDay == 1 ? "昨天 " : diffDay == 0 ? "今天 " : "") + ((parTime.getHours() / 12 > 1 ? "下午" : "上午") + Array(2 - ('' + parTime.getHours()).length + 1).join(0) + parTime.getHours() + ":" + Array(2 - ('' + parTime.getMinutes()).length + 1).join(0) + parTime.getMinutes()); }, /* ** author:lttr <www.cnblogs.com/GoCircle> ** date:2018-02-01 ** 对13位时间戳的扩展,将时间转化为指定格式的String ** 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) ** 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符 ** eg. ** $(1517469000000).timeFormat("yyyy-MM-dd hh:mm:ss.f"); // 2018-02-01 15:10:00.0 */ "timeFormat": function (fmt) { let selfTime = new Date(((this.selector || $(this)[0]) + Array(13).join('0')).slice(0, 13) - 0), // 补全为13位 PHP时间戳为10位 o = { "q+": Math.floor((selfTime.getMonth() + 3) / 3), //季度 "M+": selfTime.getMonth() + 1, //月份 "d+": selfTime.getDate(), //日 "h+": selfTime.getHours(), //小时 "m+": selfTime.getMinutes(), //分 "s+": selfTime.getSeconds(), //秒 "f": selfTime.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (selfTime.getFullYear() + "").substr(4 - RegExp.$1.length)); for (let k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } });