本文主要是介绍JS时间格式转化,获取前十天,后十天,前n天,后n天的具体时间方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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();// 获取前后n天时间let recent = new Date(now+day*24*60*60*1000)// key:正则匹配表达式,value:对应的时间、日期let fmtObj = {'M+': recent.getMonth()+1, //月份'd+': recent.getDate(), //日'h+': recent.getHours(), //时'm+': recent.getMinutes(), //分's+': recent.getSeconds(), //秒}// 获取匹配年份替换if(/(y+)/.test(fmt)){//RegExp.$1 匹配结果,替换成对应的长度。如:yyyy就替换成整个年份2021,yy就替换成后两位21,以此类推fmt = fmt.replace(RegExp.$1,(recent.getFullYear()+'').substr(4-RegExp.$1.length))}for(let key in fmtObj){if(new RegExp(`(${key})`).test(fmt)){//日期,时、分、秒替换,判断fmt是否需要补0,如:yyyy-M-d h:m:s 不补0,yyyy-MM-dd hh:mm:ss 则自动补0fmt = 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')
// 2022-01-04 00:00:00
recentTime(0,'yyyy-M-d','2021-04-06')
// 2021-04-06
recentTime(-1,'yyyy-MM-dd hh:mm:ss','2021-04-06 13:52:05')
// 2021-04-05 13:52:05
recentTime(2,'yyyy-MM-dd','2021-04-06 13:52:05')
// 2021-04-08
这篇关于JS时间格式转化,获取前十天,后十天,前n天,后n天的具体时间方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!