關於時間常用的一些函式的封裝
阿新 • • 發佈:2021-08-16
儲存一些常用的時間函式的封裝
1、首先是時間格式化函式
// 時間格式化函式 formatDate(new Date(),"yyyy-MM-dd hh:mm:ss"); export function formatDate(date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); } let o = { 'M+': date.getMonth() + 1, 'd+': date.getDate(),'h+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds() }; for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + ''; fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); } } return fmt; };
這基本上也算是最常用的了,就是把一個時間物件,轉換成為一個字串時間
2、獲取一下常用的時間字串,比方說,這周的開始時間,這周的結束時間(週六為一週的最後一天)
var now = new Date(); //當前日期 var nowDayOfWeek = now.getDay(); //今天本週的第幾天 var nowDay = now.getDate(); //當前日 var nowMonth = now.getMonth(); //當前月 var nowYear = now.getYear(); //當前年 nowYear += (nowYear < 2000) ? 1900 : 0; // var lastMonthDate = new Date(); //上月日期 lastMonthDate.setDate(1); lastMonthDate.setMonth(lastMonthDate.getMonth()- 1); var lastYear = lastMonthDate.getFullYear(); var lastMonth = lastMonthDate.getMonth(); // console.log(lastYear) //格式化日期:yyyy-MM-dd function formatDateOther(date) { var myyear = date.getFullYear(); var mymonth = date.getMonth() + 1; var myweekday = date.getDate(); if (mymonth < 10) { mymonth = "0" + mymonth; } if (myweekday < 10) { myweekday = "0" + myweekday; } return (myyear + "-" + mymonth + "-" + myweekday); } //獲得某月的天數 function getMonthDays(myMonth) { var monthStartDate = new Date(nowYear, myMonth, 1); var monthEndDate = new Date(nowYear, myMonth + 1, 1); var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24); return days; } //獲得本季度的開始月份 function getQuarterStartMonth() { var quarterStartMonth = 0; if (nowMonth < 3) { quarterStartMonth = 0; } if (2 < nowMonth && nowMonth < 6) { quarterStartMonth = 3; } if (5 < nowMonth && nowMonth < 9) { quarterStartMonth = 6; } if (nowMonth > 8) { quarterStartMonth = 9; } return quarterStartMonth; } //獲得本週的開始日期 function getWeekStartDate() { var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek); return formatDateOther(weekStartDate); } //獲得本週的結束日期 function getWeekEndDate() { var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek)); return formatDateOther(weekEndDate); } //獲得上週的開始日期 function getLastWeekStartDate() { var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7); return formatDateOther(weekStartDate); } //獲得上週的結束日期 function getLastWeekEndDate() { var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1); return formatDateOther(weekEndDate); } //獲得本月的開始日期 function getMonthStartDate() { var monthStartDate = new Date(nowYear, nowMonth, 1); return formatDateOther(monthStartDate); } //獲得本月的結束日期 function getMonthEndDate() { var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth)); return formatDateOther(monthEndDate); } //獲得上月開始時間 function getLastMonthStartDate() { var lastMonthStartDate = new Date(lastYear, lastMonth, 1); return formatDateOther(lastMonthStartDate); } //獲得上月結束時間 function getLastMonthEndDate() { var lastMonthEndDate = new Date(lastYear, lastMonth, getMonthDays(lastMonth)); return formatDateOther(lastMonthEndDate); } //獲得本季度的開始日期 function getQuarterStartDate() { var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1); return formatDateOther(quarterStartDate); } //或的本季度的結束日期 function getQuarterEndDate() { var quarterEndMonth = getQuarterStartMonth() + 2; var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth)); return formatDateOther(quarterStartDate); }