//防止多次重复点击 (函数节流) export function throttle(fn, gapTime) { if (gapTime == null || gapTime == undefined) { gapTime = 1500; } let _lastTime = null; return function () { let _nowTime = new Date(); if (_nowTime - _lastTime > gapTime || !_lastTime) { fn.apply(this, arguments); //将this和参数传给原函数 _lastTime = _nowTime; } }; } export function debounce(fn, delay) { let timeout = null; return function () { clearTimeout(timeout); timeout = setTimeout(() => { fn.apply(this, arguments); }, delay); }; } /* 返回时间补0 time 时间 format 格式 yyyyMMdd HH:mm:ss, yyyyMMdd, HH:mm:ss Symbol 分隔符号 */ export function getFormatDate(time, format, symbol) { if (typeof time == 'string') { time = new Date(time.replace(/-/g, '/')) } format = format ? format : "yyyyMMdd HH:mm:ss"; symbol = symbol ? symbol : ""; let year = time.getFullYear(); let month = time.getMonth() < 9 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1; let day = time.getDate() < 10 ? "0" + time.getDate() : time.getDate(); let hour = time.getHours() < 10 ? "0" + time.getHours() : time.getHours(); let minutes = time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes(); let seconds = time.getSeconds() < 10 ? "0" + time.getSeconds() : time.getSeconds(); if (format === "yyyyMMdd HH:mm:ss") { return symbol ? `${year}${symbol}${month}${symbol}${day} ${hour}:${minutes}:${seconds}` : `${year}/${month}/${day} ${hour}:${minutes}:${seconds}`; } else if (format === "yyyyMMdd") { return symbol ? `${year}${symbol}${month}${symbol}${day}` : `${year}/${month}/${day}`; } else if (format === "HH:mm:ss") { return `${hour}:${minutes}:${seconds}`; } else if (format === "HH:mm") { return `${hour}:${minutes}`; } } // 返回每个月的第一天 export function getCurrentMonthFirst(date) { date.setDate(1); var month = parseInt(date.getMonth() + 1); var day = date.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } return date.getFullYear() + "-" + month + "-" + day; } // 返回每个月的最后一天 export function getCurrentMonthLast(date) { var currentMonth = date.getMonth(); var nextMonth = ++currentMonth; var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); var oneDay = 1000 * 60 * 60 * 24; var lastTime = new Date(nextMonthFirstDay - oneDay); var month = parseInt(lastTime.getMonth() + 1); var day = lastTime.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } return date.getFullYear() + "-" + month + "-" + day; } //开始时间取整, 取5的倍数 export function getInterTime(time) { let date = time; if (typeof time == "string") { date = new Date(time); } const min = date.getMinutes(); const addMin = Math.floor(min / 5) * 5 + 5; date.setMinutes(addMin); return date; } // 判断是刚刚 60分钟以内 23小时以内 正常时间年月日 export function getCreateShowTime(createdTime) { let timeResule = '' const creatTime = createdTime.replace(/\-/g, "/") const year = new Date().getFullYear() const month = new Date().getMonth() + 1 const day = new Date().getDate() const creatYear = new Date(creatTime).getFullYear() const creatMonth = new Date(creatTime).getMonth() + 1 const creatDay = new Date(creatTime).getDate() if (year == creatYear) { if (month == creatMonth) { if (day == creatDay) { const letMin = (new Date().getTime() - new Date(creatTime).getTime()) / 1000 / 60; if (letMin < 2) { timeResule = '刚刚' } else if (letMin < 60) { timeResule = letMin.toFixed(0) + '分钟前' } else { timeResule = (letMin / 60).toFixed(0) + '小时前' } } else { timeResule = day - creatDay + '天前' } } else { const leftDay = (new Date().getTime() - new Date(creatTime).getTime()) / 1000 / 60 / 60 / 24; if (leftDay < 28) { if (leftDay < 1) { timeResule = (leftDay * 24).toFixed(0) + '小时前' } else { timeResule = letDay.toFixed(0) + '天前' } } else { timeResule = `${creatTime.substring(5, 7)}月${creatTime.substring(8, 10)}日 ${creatTime.substring(11, 16)}` } } } else { timeResule = `${creatTime.substring(0, 4)}年${creatTime.substring(5, 7)}月${creatTime.substring(8, 10)}日 ${creatTime.substring(11, 16)}` } return timeResule } export function padZero(val) { return ("00" + val).slice(-2); }