JS时间转化,获取前十天,后十天,前n天,后n天的具体时间方法
1.参数说明:
参数 | 说明 |
---|
day | 前后n天 0为当天,正值表示未来n天,负值表示过去n天 |
fmt | 时间转化的格式 |
time | 传入时间,默认为当前时间 |
function recentTime(day,fmt,time){
let now = (time? new Date(time) :new Date()).getTime();
let recent = new Date(now+day*24*60*60*1000)
let fmtObj = {
'M+': recent.getMonth()+1,
'd+': recent.getDate(),
'h+': recent.getHours(),
'm+': recent.getMinutes(),
's+': recent.getSeconds(),
}
if(/(y+)/.test(fmt)){
fmt = fmt.replace(RegExp.$1,(recent.getFullYear()+'').substr(4-RegExp.$1.length))
}
for(let key in fmtObj){
if(new RegExp(`(${key})`).test(fmt)){
fmt = fmt.replace(RegExp.$1,RegExp.$1.length==1 ? fmtObj[key] : ('00'+fmtObj[key]).substr((''+fmtObj[key]).length))
}
}
return fmt
}
2.调用
recentTime(1,'yyyy-MM-dd hh:mm:ss','2022-01-03 00:00:00')
recentTime(0,'yyyy-M-d','2021-04-06')
recentTime(-1,'yyyy-MM-dd hh:mm:ss','2021-04-06 13:52:05')
recentTime(2,'yyyy-MM-dd','2021-04-06 13:52:05')