日期格式化
function formatDate (fmt, date) {
let ret
let opts = {
'y+': date.getFullYear(),
'M+': (date.getMonth() + 1),
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (let k in opts) {
ret = new RegExp('(' + k + ')').exec(fmt)
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opts[k] + '') : ('00' + opts[k]).substr(-ret[1].length))
}
}
return fmt
}
复制代码
获取相差指定时间的日期时间戳
const getDurationTime = (duration = 1, type = 'd', returnType = 0, fmt) => {
let date = new Date()
let year = date.getFullYear()
let month = date.getMonth()
let day = date.getDate()
let daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
daysInMonth[1] = 29
}
let time
day = day > daysInMonth[month] ? daysInMonth[month] : day
if (type === 'h') {
time = new Date() - 3600 * 1000 * duration
} else if (type === 'd') {
time = new Date() - 3600 * 1000 * 24 * duration
} else if (type === 'M') {
if (month - duration > 0) {
time = new Date(year, month - duration, day).getTime()
} else {
time = new Date(year - 1, 12 + (month - duration), day).getTime()
}
} else {
time = new Date(year - 1, month, day).getTime()
}
if (returnType === 0) {
return time
} else if (returnType === 1) {
return new Date(time)
} else {
return formatDate(new Date(time), fmt)
}
}
复制代码