当我的当前月份是每年的12月时,如何显示下个月? -JavaScript

时间:2019-01-10 07:31:02

标签: javascript

这是我的代码。我的问题是当当前月份为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,没有第三方库。

2 个答案:

答案 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)]