多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 1. 计算 n月之后的日期 ``` function countMonth(time,n) { // n个月后 var s=time.split("-") var yy = parseInt(s[0]); var mm = parseInt(s[1] - 1); var dd = parseInt(s[2]); var dt = new Date(yy, mm, dd); dt.setMonth(dt.getMonth() + n); // 如果 mm月对比 下 个月,但已经进入 下下 月,处理 if (((dt.getFullYear() - yy) * 12 + dt.getMonth()) > mm + n) { // 则:取mm 的下个月最后一天 dt = new Date(dt.getFullYear(), dt.getMonth(), 0); } var year = dt.getFullYear(); var month = dt.getMonth() + 1; var days = dt.getDate(); return year + "-" + month + "-" + days; } ``` ### 2、日期过滤 ``` /**  * 日期过滤  * @param {日期} date  * @param {*日期格式} fmt  */ export function formatDate(date, fmt) {   date = new Date(date)   if (/(y+)/.test(fmt)) {     fmt = fmt.replace(       RegExp.$1,       (date.getFullYear() + '').substr(4 - RegExp.$1.length)     )   }   const o = {     'M+': date.getMonth() + 1,     'd+': date.getDate(),     'h+': date.getHours(),     'm+': date.getMinutes(),     's+': date.getSeconds()   }   for (const k in o) {     if (new RegExp(`(${k})`).test(fmt)) {       const str = o[k] + ''       fmt = fmt.replace(         RegExp.$1,         RegExp.$1.length === 1 ? str : padLeftZero(str)       )     }   }   return fmt } function padLeftZero(str) {   return ('00' + str).substr(str.length) } ```