您当前的位置: 首页 >  Java

暂无认证

  • 1浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JavaScript实现月份累加,比如‘2021-01-31‘加一个月得到‘2021-02-28‘

发布时间:2021-12-17 18:55:39 ,浏览量:1

目录
  • 1、主要代码
  • 2、时间格式化
  • 3、效果演示
1、主要代码
function addMonth(initialDate, months) { let date = new Date(initialDate), oldDate = date.getDate(); date.setDate(1); date.setMonth(date.getMonth() + months); let newDay = new Date(date.getYear(), date.getMonth() + 1, 0).getDate(); date.setDate(Math.min(oldDate, newDay)); return date; } 

返回的是标准时间Wed Feb 17 2021 00:00:00 GMT+0800 (GMT+08:00),所以需要格式化处理。

2、时间格式化
function addMonth(initialDate, months) { let date = new Date(initialDate), oldDate = date.getDate(); date.setDate(1); date.setMonth(date.getMonth() + months); let newDay = new Date(date.getYear(), date.getMonth() + 1, 0).getDate(); date.setDate(Math.min(oldDate, newDay)); console.log(date); // Wed Feb 17 2021 00:00:00 GMT+0800 (GMT+08:00) return parseTime(date, '{y}-{m}-{d}'); } function parseTime(time, pattern) { if (arguments.length === 0 || !time) { return null; } const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'; let date; if (typeof time === 'object') { date = time; } else { if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { time = parseInt(time); } else if (typeof time === 'string') { time = time.replace(new RegExp(/-/gm), '/'); } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000; } date = new Date(time); } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() }; const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { let value = formatObj[key]; if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value]; } if (result.length > 0 && value < 10) { value = '0' + value; } return value || 0; }); return time_str; } console.log(addMonth('2021-1-17', 1)); // 2021-02-17 
3、效果演示

小程序码

2.0.0X

普通二维码

2.0.0P

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3919s