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 则自动补0 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') // 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