let now = new Date(); // 当前日期 let nowDayOfWeek = now.getDay(); // 今天本周的第几天 let nowDay = now.getDate(); // 当前日 let nowMonth = now.getMonth(); // 当前月 let nowYear = now.getFullYear(); // 当前年 nowYear += (nowYear < 2000) ? 1900 : 0; let DateUtil = { /** * 获得当前日期 * * @returns */ getNowDay() { return new Date().getTime(); }, /** * 获得今天开始时间 * * @returns */ getStartOfNowDay() { return new Date(nowYear, nowMonth, nowDay).getTime(); }, /** * 获得今天结束时间 * * @returns */ getEndOfNowDay() { return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000 - 1; }, /** * 获得昨天开始时间 * * @returns */ getStartOfPreDay() { return new Date(nowYear, nowMonth, nowDay).getTime() - 24 * 60 * 60 * 1000; }, /** * 获得昨天结束时间 * * @returns */ getEndOfPreDay() { return new Date(nowYear, nowMonth, nowDay).getTime() - 1; }, /** * 获得明天开始时间 * * @returns */ getStartOfNextDay() { return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000; }, /** * 获得明天结束时间 * * @returns */ getEndOfNextDay() { return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000 * 2 - 1; }, /** * 获得本周的开始时间 * * @returns */ getStartDayOfWeek() { let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime(); }, /** * 获得本周的结束时间 * * @returns */ getEndDayOfWeek() { let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 24 * 60 * 60 * 1000 - 1; }, /** * 获得上周的开始时间 * * @returns */ getStartDayOfPreWeek() { // 本周开始 - 7天 let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime() - 7 * 24 * 60 * 60 * 1000; }, /** * 获得上周的结束时间 * * @returns */ getEndDayOfPreWeek() { // 本周开始 - 1 let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime() - 1; }, /** * 获得下周的开始时间 * * @returns */ getStartDayOfNextWeek() { // 本周周末 + 1 let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 1; }, /** * 获得下周的结束时间 * * @returns */ getEndDayOfNextWeek() { // 本周周末 + 7天 let day = nowDayOfWeek || 7; return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 24 * 60 * 60 * 1000 * 7 - 1; }, /** * 获得本月的开始时间 * * @returns */ getStartDayOfMonth() { let monthStartDate = new Date(nowYear, nowMonth, 1); return monthStartDate.getTime(); }, /** * 获得本月的结束时间 * * @returns */ getEndDayOfMonth() { let monthEndDate = new Date(nowYear, nowMonth, this.getMonthDays()); return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1; }, /** * 获得上月的开始时间 * * @returns */ getStartDayOfPreMonth() { let monthStartDate = ""; if (nowMonth == 0) { monthStartDate = new Date(nowYear - 1, 12, 1); } else { monthStartDate = new Date(nowYear, nowMonth - 1, 1); } return monthStartDate.getTime(); }, /** * 获得上月的结束时间 * * @returns */ getEndDayOfPreMonth() { // 当前月-1 let monthEndDate = new Date(nowYear, nowMonth, 1); return monthEndDate.getTime() - 1; }, /** * 获得下月的开始时间 * * @returns */ getStartDayOfNextMonth() { // 当月最后一天+24小时 let monthStartDate = new Date(nowYear, nowMonth, this.getMonthDays()); return monthStartDate.getTime() + 24 * 60 * 60 * 1000; }, /** * 获得下月的结束时间 * * @returns */ getEndDayOfNextMonth() { let monthEndDate = ''; if (nowMonth == 11) { monthEndDate = new Date(nowYear + 1, 1, 31); } else { monthEndDate = new Date(nowYear, nowMonth + 1, 31); } return monthEndDate.getTime(); }, /** * 获得本月天数 * * @returns */ getMonthDays() { let monthStartDate = new Date(nowYear, nowMonth, 1); let monthEndDate = new Date(nowYear, nowMonth + 1, 1); let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24); return days; }, /** * 获得本年的开始时间 * * @returns */ getStartDayOfYear() { let monthStartDate = new Date(nowYear, 0, 1); return monthStartDate.getTime(); }, /** * 获得本年的结束时间 * * @returns */ getEndDayOfYear() { let monthEndDate = new Date(nowYear, 11, 31); return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1; }, /** * 获得去年的开始时间 * * @returns */ getStartDayOfPreYear() { let monthStartDate = new Date(nowYear - 1, 0, 1); return monthStartDate.getTime(); }, /** * 获得去年的结束时间 * * @returns */ getEndDayOfPreYear() { let monthEndDate = new Date(nowYear - 1, 11, 31); return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1; }, /** * @param 日期格式化 * @returns {String} */ formatDate(timestamp) { if (timestamp) { const date = new Date(+timestamp); let myYear = date.getFullYear(); let myMonth = date.getMonth() + 1; let myWeekday = date.getDate(); if (myMonth < 10) { myMonth = "0" + myMonth; } if (myWeekday < 10) { myWeekday = "0" + myWeekday; } return (myYear + "-" + myMonth + "-" + myWeekday); } else { return '无期限' } }, UTCFormat(value) { if (value) { let date = new Date(value); return date.toLocaleString().substring(0, 10) } else { return "--" } }, formatDateTimeByTime(time) { //获取年份 let year = new Date(time).getFullYear(); //获取月份 let month = new Date(time).getMonth() + 1; if (month < 10) { month = "0" + month; } //获取日 let date = new Date(time).getDate(); if (date < 10) { date = "0" + date; } //获取小时 let h1 = new Date(time).getHours() < 10 ? '0' + new Date(time).getHours() : new Date(time).getHours(); //获取分钟 let m1 = new Date(time).getMinutes() < 10 ? '0' + new Date(time).getMinutes() : new Date(time).getMinutes(); //获取秒 let s1 = new Date(time).getSeconds() < 10 ? '0' + new Date(time).getSeconds() : new Date(time).getSeconds(); //组合格式为年-月-日 时:分:秒(2021-07-05 21:21:21) return year + "-" + month + "-" + date + " " + h1 + ":" + m1 + ":" + s1 } } export default DateUtil