import tool from '@/utils/tool' var Time = { //获取当前时间戳 getUnix: function () { var date = new Date(); return date.getTime(); }, //获取今天0点0分0秒的时间戳 getTodayUnix: function () { var date = new Date(); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); return date.getTime(); }, //获取今年1月1日0点0秒的时间戳 getYearUnix: function () { var date = new Date(); date.setMonth(0); date.setDate(1); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); return date.getTime(); }, //获取标准年月日 getLastDate: function (time, hideY = false) { var date = new Date(time); var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); var Hour = date.getHours() < 10 ? '0' + date.getHours() : date.getHours(); var Minute = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); if (hideY) { return month + '-' + day + ' ' + Hour + ':' + Minute; } return date.getFullYear() + '-' + month + '-' + day; }, //转换时间 getFormateTime: function (timestamp) { var now = new Date(); var todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate()); var yesterdayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1); var beforeYesterdayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 2); timestamp = new Date(timestamp); var timer = (now - timestamp) / 1000; // 差值秒数 var tip = ''; if (timer <= 0) { tip = '刚刚'; } else if (timer < 60) { tip = '刚刚'; } else if (timer < 3600) { tip = Math.floor(timer / 60) + '分钟前'; } else if (timestamp >= todayStart) { tip = Math.floor(timer / 3600) + '小时' + Math.floor((timer % 3600) / 60) + '分前'; } else if (timestamp >= yesterdayStart) { tip = '昨天' + timestamp.getHours() + '时' + timestamp.getMinutes() + '分'; } else if (timestamp >= beforeYesterdayStart) { tip = '前天' + timestamp.getHours() + '时' + timestamp.getMinutes() + '分'; } else { var currentYearStart = new Date(now.getFullYear(), 0, 1); return this.getLastDate(timestamp, timestamp >= currentYearStart ? true : false) } return tip; } } export default (el, binding) => { let { value, modifiers } = binding if (!value) { return false } if (value.toString().length == 10) { value = value * 1000 } if (modifiers.tip) { if (el.__timeout__) { clearInterval(el.__timeout__) } el.innerHTML = Time.getFormateTime(value) el.__timeout__ = setInterval(() => { el.innerHTML = Time.getFormateTime(value) }, 60000) } else { const format = el.getAttribute('format') || undefined el.innerHTML = tool.dateFormat(value, format) } }