这是我的代码。我的问题是当当前月份为12月时如何显示下个月。
var monthNames = ['January','February','March','April','May','June','July','August','September','October','November','December'];
console.log(monthNames[new Date().getMonth()].toString().substr(0, 3) + '-' + new Date().getFullYear().toString().substr(-2));
console.log(monthNames[new Date().getMonth()+1].toString().substr(0, 3) + '-' + new Date().getFullYear().toString().substr(-2));
console.log(monthNames[new Date().getMonth()+2].toString().substr(0, 3) + '-' + new Date().getFullYear().toString().substr(-2));
console.log(monthNames[new Date().getMonth()+3].toString().substr(0, 3) + '-' + new Date().getFullYear().toString().substr(-2));
console.log('Suppose if the current month is Dec-19 then what should I do? It should return next line as Jan-20 but it is not doing so');
这是我的JSFIDDLE Fiddle
如果我的月份是12月17日或12月18日,该如何显示下个月?我需要一个普通的JS解决方案,没有jQuery,没有lodash,没有第三方库。
答案 0 :(得分:1)
使用日期对象,它是内置函数。立即宣誓永远不要创建月份名称数组! setMonth()
会愉快地接受大于12的值或为负值,所以只要做您需要的...
var myDate = new Date('2019-12-19')
myDate.setMonth( myDate.getMonth()+1 )
var formatted = myDate.toLocaleDateString({},{month:'long',year:'2-digit'})
console.log(formatted)
答案 1 :(得分:1)
我认为这足够了
monthNames[(new Date().getMonth() % 12)]