js 时间处理,最近几天,几个月
2019-01-11 本文已影响7人
好名字_978d
https://www.cnblogs.com/carekee/articles/1678041.html
关于时间戳与时间日期之间的转换,文章信息量全面。可以研究一下
最近7天,15天 ,30天,6个月,12个月,36个月
let data = new Date().getTime()
// 昨天日期
let ms = 24 * 3600 * 1000
// num < 3 表示的是最近几天,等于3表示 最近今个月
// type =1 表示 最近7天、最近6个月
// type =2 表示 最近15天、最近12个月
// type =3 表示 最近30天、最近36个月
if (num < 3) {
params.endDate = moment(data).format('YYYY-MM-DD')
if (type === 1) {
params.startDate = moment(data - 7 * ms).format('YYYY-MM-DD')
}
if (type === 2) {
params.startDate = moment(data - 15 * ms).format('YYYY-MM-DD')
}
if (type === 3) {
params.startDate = moment(data - 35 * ms).format('YYYY-MM-DD')
}
} else {
let nowMouth = moment(data).format('YYYY-MM')
let numMouth = nowMouth.split('-').map(value => Number(value))
numMouth[1]--
if (numMouth[1] === 0) {
numMouth[0]--
numMouth[1] = 12
}
if (numMouth[1] < 10) {
numMouth[1] = ('0' + numMouth[1].toString())
}
params.endDate = numMouth.join('-')
numMouth[1] = Number(numMouth[1])
if (type === 1) {
if (numMouth[1] >= 6) {
numMouth[1] = numMouth[1] - 5
} else {
numMouth[1] = 7 + numMouth[1]
numMouth[0]--
}
if (numMouth[1] < 10) {
numMouth[1] = ('0' + numMouth[1].toString())
}
params.startDate = numMouth.join('-')
}
if (type === 2) {
if (numMouth[1] < 12) {
numMouth[0]--
numMouth[1]++
} else {
numMouth[1] = 1
}
if (numMouth[1] < 10) {
numMouth[1] = ('0' + numMouth[1].toString())
}
params.startDate = numMouth.join('-')
}
if (type === 3) {
if (numMouth[1] < 12) {
numMouth[0] = numMouth[0] - 2
numMouth[1]++
} else {
numMouth[0] = numMouth[0] - 1
numMouth[1] = 1
}
if (numMouth[1] < 10) {
numMouth[1] = ('0' + numMouth[1].toString())
}
params.startDate = numMouth.join('-')
}
}
使用moment.js 实现上述功能
if (num === 3) {
if (type < 4) {
params.endDate = moment().subtract(1, 'months').format('YYYY-MM')
if (type === 1) {
params.startDate = moment().subtract(6, 'months').format('YYYY-MM')
}
if (type === 2) {
params.startDate = moment().subtract(12, 'months').format('YYYY-MM')
}
if (type === 3) {
params.startDate = moment().subtract(36, 'months').format('YYYY-MM')
}
}
} else {
if (type < 4) {
params.endDate = moment().subtract(1, 'day').format('YYYY-MM-DD')
if (type === 1) {
params.startDate = moment().subtract(7, 'day').format('YYYY-MM-DD')
}
if (type === 2) {
params.startDate = moment().subtract(15, 'day').format('YYYY-MM-DD')
}
if (type === 3) {
params.startDate = moment().subtract(30, 'day').format('YYYY-MM-DD')
}
}
}