export default { /** * @param {时间处理(今日,昨日)} * @param {传入值} time * @param {是否携带时分秒} isTime * @returns */ jktTimes(time, isTime) { if (time == undefined) return ""; var today = new Date().getDate();//当前时间-日 var day = new Date(time).getDate();//传入时间-日 var newday = today - day if (newday == 0) { if (isTime == "否") { return "今天"; } else { var newTime = time.split(" ")[1] var newTime2 = newTime.split(":") return newTime2[0] + ":" + newTime2[1]; } } else if (newday == 1) { if (isTime == "否") { return "昨天"; } else { var newTime = time.split(" ")[1] var newTime2 = newTime.split(":") return newTime2[0] + ":" + newTime2[1]; } } else { var newTime = time.split(" ") if (isTime == "否") { return newTime[0] } else { var newTime2 = newTime[1].split(":") return newTime2[0] + ":" + newTime2[1]; } } }, /** * @指定获取开始时间结束时间 */ getDays(value) { let oneDay = 24 * 60 * 60 * 1000; let endTime = new Date(Date.now()); endTime = this.formatterDate(endTime, "yyyy-MM-dd"); let startTime = new Date(Date.now() - value * oneDay); startTime = this.formatterDate(startTime, "yyyy-MM-dd"); const days = [startTime, endTime] return days; }, /** * @处理公共日期格式 */ formatterDate(date, fmt) { let nowDate = { yyyy: date.getFullYear(), // 年 MM: date.getMonth() + 1, // 月份 dd: date.getDate(), //日 hh: date.getHours(), mm: date.getMinutes(), ss: date.getSeconds(), }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in nowDate) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? nowDate[k] : ("00" + nowDate[k]).substr(("" + nowDate[k]).length)); } } return fmt; }, /** * @获取年月日时分秒 * @returns */ getFormatterDate(time3) { var date = new Date(time3); var Y = date.getFullYear() + "-"; var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-"; var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " "; var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":"; var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":"; var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); var strDate = Y + M + D + h + m + s; return strDate; }, /** * @获取当前日期前一年的日期 */ getYearLast(dateStr) { // 假设要获取的日期为dateStr,格式为"YYYY-MM-DD" let date = new Date(dateStr); let Y = date.getFullYear() - 1; // 获取前一年的年份 let M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; // 月 let D; // 日 var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":"; var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":"; var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); // 判断原日期的月份是否为2月份 if (date.getMonth() === 1) { // 2月份 // 判断前一年是否为闰年 if (Y % 4 === 0 && Y % 100 !== 0 || Y % 400 === 0) { // 闰年 D = Math.min(date.getDate(), 29); // 新日期的日期最大为29 } else { // 平年 D = Math.min(date.getDate(), 28); // 新日期的日期最大为28 } } else { // 非2月份 D = date.getDate(); // 新日期的日期为原日期的日期 } let newDateStr = Y + "-" + M + "-" + (D < 10 ? "0" + D : D) + " " + h + m + s; // 格式化日期字符串 return newDateStr }, /** * @统计两个日期之间的月份 */ getMonths(date1, date2) { //用-分成数组 date1 = date1.split("-"); date2 = date2.split("-"); //获取年,月数 var year1 = parseInt(date1[0]), month1 = parseInt(date1[1]), year2 = parseInt(date2[0]), month2 = parseInt(date2[1]), //通过年,月差计算月份差 months = (year2 - year1) * 12 + (month2 - month1) + 1; return months; }, /** * @获取年月日星期几 */ getDate() { var date = new Date(); var year = date.getFullYear(); // 返回的是年份 var month = date.getMonth() + 1; // 返回的月份上个月的月份,记得+1才是当月 if (month < 10) { month = "0" + month; } var dates = date.getDate(); // 返回的是几号 if (dates < 10) { dates = "0" + dates; } var day = date.getDay(); // 周一返回的是1,周六是6,但是周日是0 var arr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; return { year, month, dates, day, arr, }; }, /** * @获取当前周开始结束日期 */ getCurrentWeekDate() { const now = new Date(); const startOfWeek = new Date(now.getFullYear(), now.getMonth(), now.getDate() - now.getDay() + 1); // 本周开始日期 const endOfWeek = new Date(startOfWeek); endOfWeek.setDate(endOfWeek.getDate() + 6); // 本周结束日期 const startDate = this.getFormatterDate(startOfWeek).split(' ')[0]; const endDate = this.getFormatterDate(endOfWeek).split(' ')[0]; return { startDate: startDate, endDate: endDate } }, /** * @时间重组 * @param { 时间段 } chooseTime */ timeRestructuring(chooseTime) { var startTime = ""; var endTime = ""; let start = chooseTime[0]; let end = chooseTime[1]; if (start == 0 && end == 0) { startTime = "00:00"; endTime = "00:30"; } if ((!start && start !== 0) || !end) { startTime = ""; endTime = ""; return; } if (start % 1 === 0.5) { start = (start - 0.5 < 10 ? "0" : "") + (start - 0.5) + ":30"; } else { start = (start < 10 ? "0" : "") + start + ":00"; } if (Number.isInteger(end)) { if (end === 24) { end = "23:30"; } else { end = (end - 0.5 < 10 ? "0" : "") + end + ":00"; } } else { if (end === 24) { end = "23:30"; } else { end = (end < 10 ? "0" : "") + (end - 0.5) + ":30"; } } return { startTime: start, endTime: end, }; }, /** * @格式化接口返回的时间(T 替换为空格,去除毫秒) * @param {string|number|Date|null|undefined} time * @param {string} placeholder 空值占位符 * @returns {string} */ formatDateTime(time, placeholder = "--") { if (time === null || time === undefined || time === "") return placeholder; return String(time).replace("T", " ").split(".")[0]; }, }