/*
* 日期格式化
* params
* num(必选) 时间戳,或者是所有可以转换成时间的字符串或数字
* format(可选) 传入的字符串,根据此字符串替换对应匹配到的字母(Y、M、D、h、m、s)为对应的值,例:
* "Y-M-D h:m:s"=>"2019-11-01 01:01:01"(不传format时默认输出)
* "Y-M-D"=>"2019-11-01"
* "h:m:s"=>"01:01:01"
* "y/m/s"=>"2019/11/01"*/functionfilterTimestamp(num, format){if(num ==null||!num)return""let date =newDate(num)let y = date.getFullYear()let m = date.getMonth()+1
m = m <10?"0"+ m : m
let d = date.getDate()
d = d <10?"0"+ d : d
let h = date.getHours()
h = h <10?"0"+ h : h
let minute = date.getMinutes()
minute = minute <10?"0"+ minute : minute
let second = date.getSeconds()
second = second <10?"0"+ second : second
if(!format){return y +"-"+ m +"-"+ d +" "+ h +":"+ minute +":"+ second
}else{return format
.replace("Y", y).replace("M", m).replace("D", d).replace("h", h).replace("m", minute).replace("s", second)}}
获取n个月之后的日期
/**
* @param {String} date 需要累加月份的日期,如2020/8/19
* @param {Number} n 3
* @return {String} 转换的结果2020/11/19
*/functiongetFutureTime(date, n =0){var d =newDate(date)// 因为getMonth()获取的月份的值只能在0~11之间所以我们在进行setMonth()之前先给其减一
d.setMonth(d.getMonth()+ n)var yy = d.getFullYear()varMM= d.getMonth()+1var dd = d.getDate()var hh = d.getHours()var mm = d.getMinutes()var ss = d.getSeconds()if(MM<10){MM="0"+MM}if(dd <10){
dd ="0"+ dd
}if(hh <10) hh ="0"+ hh
if(mm <10) mm ="0"+ mm
if(ss <10) ss ="0"+ ss
return yy +"-"+MM+"-"+ dd +" "+ hh +":"+ mm +":"+ ss
}
获取往前一年的年月数组
/**
* @param {String} data 需要倒推的月数
* @return {Array} 年月的结果 如['2021年08月','2021年07月','2021年06月','2021年05月','2021年04月','2021年03月','2021年02月','2021年01月','2020年12月','2020年11月','2020年10月','2020年09月']
*/functionlastYearMonth(data){var result =[]for(var i =0; i < data; i++){var d =newDate()
d.setDate(1)
d.setMonth(d.getMonth()- i)var m = d.getMonth()+1
m = m <10?"0"+ m : m
//在这里可以自定义输出的日期格式
result.push(d.getFullYear()+"年"+ m +"月")}return result
}
获取本月第一天和最后一天
/**
* 获取本月第一天
*/functiongetNowMonth(){let date =newDate()var y = date.getFullYear()var m = date.getMonth()+1
m = m <10?"0"+ m : m
var d ="01"return y +"-"+ m +"-"+ d
}/**
* 获取本月最后一天
*/functiongetNowMonthLast(){// 获取当月最后一天const lastDay =newDate(newDate().getFullYear(),newDate().getMonth()+1,0)returnfilterTimestamp(lastDay,"Y-M-D")}
获取当前时间
/*
* @return {Date} 返回2019-11-01 01:01:01
*/functiongetNowTime(){let yy =newDate().getFullYear()let mm =newDate().getMonth()+1let dd =newDate().getDate()let hh =newDate().getHours()let mf =newDate().getMinutes()<10?"0"+newDate().getMinutes():newDate().getMinutes()let ss =newDate().getSeconds()<10?"0"+newDate().getSeconds():newDate().getSeconds()return yy +"-"+ mm +"-"+ dd +" "+ hh +":"+ mf +":"+ ss
}
获取当前日期前后几天
/**
* @param {Number} time 需要添加或减少的天数
* @return {Number} time为正数表示往前推几天,负数表示往后加几天
*/functiongetTime(time){const now =newDate()if(time >=0){returnformatDate(newDate(now.setDate(now.getDate()- time)))}else{returnformatDate(newDate(now.setDate(now.getDate()+ Math.abs(time))))}}