UNPKG

eleven-methods

Version:

常用方法累计

190 lines (189 loc) 6.92 kB
const dayjs = require('dayjs') module.exports = class ElevenDay { constructor() {} // 动态插入方法 getCurrentYTD() { let date = new Date() const year = date.getFullYear() // 获取当前年份 // 每年12个月 这是固定的 const list = Array.from({ length: 12 }, (item, index) => { let month = index + 1 month = String(month).padStart(2, '0') return { value: month, label: `${month}月`, children: Array.from({ length: this.mGetDate(year, month, 0) }, (m, mIndex) => { let day = mIndex + 1 day = String(day).padStart(2, '0') return { value: day, label: `${day}日` } }) } }) return list } // 自定义时间 返回年月日数组对象 getCustomYTD(year) { // 每年12个月 这是固定的 const list = Array.from({ length: 12 }, (item, index) => { let month = index + 1 month = String(month).padStart(2, '0') return { value: month, label: `${month}月`, children: Array.from({ length: this.mGetDate(year, month, 0) }, (m, mIndex) => { let day = mIndex + 1 day = String(day).padStart(2, '0') return { value: day, label: `${day}日` } }) } }) return list } mGetDate(year, month) { var d = new Date(year, month, 0); return d.getDate(); } // 几天前 或 几天后 AddDays(num) { var newdate = new Date(); var newtimems = newdate.getTime() + (num * 24 * 60 * 60 * 1000); newdate.setTime(newtimems); var time = newdate.getFullYear() + "-" + (newdate.getMonth() + 1) + "-" + newdate.getDate(); return time; } // 时间与当前的时间返回 半小时前 。。。 calcTimeRange(val) { let ms = (new Date() - dayjs(val).$d) let nowYear = new Date().getFullYear() let msYear = dayjs(val).year() // 0<时间<30s,显示:刚刚 let justNow = 30000; // 30s<时间<60s,显示:1分钟前 let oneMin = 60000; // 60s<时间<60m,显示:x分钟前 let fewMin = 3600000; // 60m<时间<24h,显示:x小时前 let oneDay = 86400000; // 24h<时间<48h,显示:昨天 let yesDay = 172800000; // 2d<时间<7d,显示x天前 let sevenDay = 604800000; // 7d<时间 且在本年度,显示:m月d日 let ondYear = oneDay * 365; // else 显示 日期 let timeRange = '' if (0 < ms && ms <= justNow) { timeRange = '刚刚' } else if (justNow < ms && ms <= oneMin) { timeRange = '1分钟前' } else if (oneMin < ms && ms <= fewMin) { let mins = parseInt(ms / oneMin) timeRange = mins + '分钟前' } else if (fewMin < ms && ms <= oneDay) { let hours = parseInt(ms / fewMin) timeRange = hours + '小时前' } else if (oneDay < ms && ms <= yesDay) { timeRange = '昨天' } else if (yesDay < ms && ms <= sevenDay) { let days = parseInt(ms / oneDay) timeRange = days + '天前' } else if (sevenDay < ms && ms <= ondYear && nowYear == msYear) { let month = dayjs(val).month() let day = dayjs(val).date() timeRange = ++month + '月' + day + '日' } else { timeRange = val.split(' ')[0] } return timeRange } /*** * @return {*} WeekLastDay 返回本周最后一天的时间 */ showWeekLastDay() { let Nowdate = new Date(); let WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000); let WeekLastDay = new Date((WeekFirstDay / 1000 + 6 * 86400) * 1000); return WeekLastDay; } /*** 本周第一天 * @return {*} WeekFirstDay 返回本周第一天的时间 */ showWeekFirstDay() { let Nowdate = new Date(); let WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000); return WeekFirstDay; } /*** * @return {*} MonthFirstDay 返回本月第一天的时间 */ showMonthFirstDay() { let Nowdate = new Date(); let MonthFirstDay = new Date(Nowdate.getFullYear(), Nowdate.getMonth()); return MonthFirstDay; } /*** * @return {*} MonthLastDay 返回本月最后一天的时间 */ showMonthLastDay() { let Nowdate = new Date(); let MonthNextFirstDay = new Date(Nowdate.getFullYear(), Nowdate.getMonth() + 1); let MonthLastDay = new Date(MonthNextFirstDay - 86400000); return MonthLastDay; } /** 返回指定时间戳之间的时间间隔 更为精细 * @param {*} startTime 开始时间的时间戳 * @param {*} endTime 结束时间的时间戳 * @return {string} str 返回时间字符串 */ getTimeInterval(startTime, endTime) { let start = new Date(startTime) let end = new Date(endTime) let runTime = parseInt((end - start) / 1000); let year = Math.floor(runTime / 86400 / 365); runTime = runTime % (86400 * 365); let month = Math.floor(runTime / 86400 / 30); runTime = runTime % (86400 * 30); let day = Math.floor(runTime / 86400); runTime = runTime % 86400; let hour = Math.floor(runTime / 3600); runTime = runTime % 3600; let minute = Math.floor(runTime / 60); runTime = runTime % 60; let second = runTime; let str = ''; if (year > 0) { str = year + '年'; } if (year <= 0 && month > 0) { str = month + '月'; } if (year <= 0 && month <= 0 && day > 0) { str = day + '天'; } if (year <= 0 && month <= 0 && day <= 0 && hour > 0) { str = hour + '小时'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute > 0) { str = minute + '分钟'; } if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute <= 0 && second > 0) { str += second + '秒'; } str += '前'; return str; } }