自定义时间格式封装
自定义时间格式封装,根据需求自定义自己需要的时间格式即可。
1、时间格式封装dateFunc.js
var shortMonth = [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
var defMonthNames = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
]
let dateFunc = {
getDuration (date) {
// how many days of this month
let dt = new Date(date)
var month = dt.getMonth()
dt.setMonth(dt.getMonth() + 1)
dt.setDate(0);
return dt.getDate()
},
changeDay (date, num) {
let dt = new Date(date)
return new Date(dt.setDate(dt.getDate()+num))
},
getStartDate(date) {
// return first day of this month
// console.log(new Date(date.getFullYear(), date.getMonth(), 1,0,0))
return new Date(date.getFullYear(), date.getMonth(), 1)
},
getEndDate (date) {
// get last day of this month
let dt = new Date(date.getFullYear(),date.getMonth()+1,1,0,0) // 1st day of next month
return new Date(dt.setDate(dt.getDate()-1)) // last day of this month
},
// 获取当前周日期数组
getDates(date) {
var new_Date = date
var timesStamp = new Date(new_Date.getFullYear(),new_Date.getMonth(),new_Date.getDate(),0,0,0).getTime()
// var timesStamp = new_Date.getTime();
var currenDay = new_Date.getDay();
var dates = [];
for(var i = 0; i < 8; i++) {
dates.push(new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)));
}
return dates
},
format (date, format, monthNames) {
monthNames = monthNames || defMonthNames
if (typeof date === 'string') {
date = new Date(date.replace(/-/g, '/'))
} else {
date = new Date(date)
}
var map = {
'M' : date.getMonth() + 1,
'd' : date.getDate(),
'h' : date.getHours(),
'm' : date.getMinutes(),
's' : date.getSeconds(),
'q' : Math.floor((date.getMonth() + 3) / 3),
'S' : date.getMilliseconds()
}
format = format.replace(/([yMdhmsqS])+/g, (all, t) => {
var v = map[t]
if (v !== undefined) {
if (all === 'MMMM') {
return monthNames[v - 1]
}
if (all === 'MMM') {
return shortMonth[v - 1]
}
if (all.length > 1) {
v = '0' + v
v = v.substr(v.length - 2)
}
return v
} else if (t === 'y') {
return String(date.getFullYear()).substr(4 - all.length)
}
return all
})
return format
}
}
module.exports = dateFunc
2、将封装好的dateFunc.js引入需要自定义时间格式的组件内即可
import dateFunc from "../../components/dateFunc"
3、然后直接调用该dateFunc.js内封装好的函数即可。下面以’yyyy-MM-dd hh:mm:ss’时间格式举例:
this.queryInfo.deadLine = dateFunc.format(new Date(this.queryInfo.deadLine),'yyyy-MM-dd hh:mm:ss');
4、上述封装的dateFunc.js内包含获取当前日期、月开始日期、月结束日期等、按需自行调用即可。
兄弟萌 睡觉辽!