function dateTime(date, fmt) { if (fmt === void 0) { fmt = 'yyyy年MM月dd日 hh:mm'; } // 时间戳转换 if (!date) return ''; var d = new Date(date); var o = { "M+": d.getMonth() + 1, //月份 "d+": d.getDate(), //日 "h+": d.getHours(), //小时 "m+": d.getMinutes(), //分 "s+": d.getSeconds() //秒 }; // 根据y的长度来截取年 if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var 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; } function dateYear() { // 获取当年的第一天 var date = new Date(); date.setDate(1); date.setMonth(0); return date.getTime(); } function dateLast() { // 获取昨天 var day = new Date(); day.setTime(day.getTime() - 24 * 60 * 60 * 1000); return dateTime(day, 'yyyy/MM/dd'); } function dateMatter(time, drag = 'normal') { // 时间转换 var timeStr = ''; var currentDay = dateTime(time, 'yyyy/MM/dd'); // 当前日期 var lingDay = new Date(new Date().toLocaleDateString()).getTime(); // 获取当天0点 var isTime = new Date(time) - lingDay; var diff = isTime < 0 ? '昨天' : ''; var isDate = new Date(time) - dateYear(); if (isDate < 0) { drag == 'normal' ? timeStr = dateTime(time) : timeStr = dateTime(time, 'yyyy年MM月dd日'); } else { if (currentDay === dateLast()) { drag == 'normal' ? timeStr = diff + dateTime(time, 'hh:mm') : timeStr = diff; } else { if (isTime < 0) { drag == 'normal' ? timeStr = dateTime(time, 'MM月dd日 hh:mm') : timeStr = dateTime(time, 'MM月dd日'); } else { timeStr = dateTime(time, 'hh:mm'); } } } return timeStr; }