- 话不多说,当遇到需求:让你计算某一年月的n月之前或者n月之后(也就是yyyy-mm + n)时,不用插件,你是否一头雾水,无从下手。基于自身开发总结,为你提供一种实现该需求的解决方法。
/* 计算年月加减月份 originalYtd为String,格式为"yyyy-MM" monthNum为Number,格式为n,n为正数表示加月份,为负数表示减月份 */ function calcMonths(originalYtd, monthNum) { let arr = originalYtd.split('-'); let year = parseInt(arr[0]); let month = parseInt(arr[1]); month = month + monthNum; if (month > 12) { let yearNum = parseInt((month - 1) / 12); month = month % 12 == 0 ? 12 : month % 12; year += yearNum; } else if (month <= 0) { month = Math.abs(month); let yearNum = parseInt((month + 12) / 12); let n = month % 12; if (n == 0) { year -= yearNum; month = 12 } else { year -= yearNum; month = Math.abs(12 - n) } } month = month < 10 ? "0" + month : month; return year + "-" + month; }
- 当然,除了以上纯原生js实现外,moment.js插件官网传送门是实际开发中使用频率和效率较高的一种处理方式。之前的文章也教学了其在vue中的使用和总结了近二十余种常见的日期处理。moment.js使用和总结。
- 码字不易,还请各路大佬多多三连。
js实现年月加减月份的计算(纯原生实现当前年月n月前和n月后的年月)
最新推荐文章于 2024-07-30 11:21:43 发布