给定当前日期,如何获取最近24个月的最后一天?

时间:2018-12-06 13:26:40

标签: javascript

此致

鉴于当前日期,我想知道过去24个月的最后一天。我正在尝试获得类似于以下内容的输出:

  

当前月-1月30/11/2018

     

2018/10/31本月-2

     

...

     

2016年12月31日,当前月份为-24

我尝试搜索低谷,但找不到类似的问题。

有帮助吗? :)

编辑:基于Jalees代码,我附带了这段代码,我认为它可以满足我的需要:

for(i=0;i<24;i++)
{
	d = new Date();
	d.setMonth(d.getMonth() + (1 - (i + 1)));
	d.setDate(0);
	$('#aaaaa').append($('<option>', {value: 'x', text: d.getDate() + '/' + (((d.getMonth() + 1).length == 1) ? '0'+''+(d.getMonth() + 1) : d.getMonth() + 1) + '/' + d.getFullYear()}));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="aaaaa"></select>

2 个答案:

答案 0 :(得分:2)

使用循环索引从当前月份中减去以为每个月份建立一个新日期,并将该日期设置为零以获得上个月的最后一天

使用Array#from()的示例:

const curr = new Date();

function getPrevMonth(_,i){
   const prev = new Date(curr.getFullYear(), curr.getMonth()-i, 0)
   return [prev.getDate(), prev.getMonth()+1, prev.getFullYear()].join('/')// format as desired
}
const months = Array.from({length:24}, getPrevMonth);

console.log(months)

答案 1 :(得分:1)

您可以使用此技术 。对于2月,您可以使用1,对于3月2日,可以继续。

var month = 0; // January
var d = new Date(2008, month + 1, 0);
alert(d); // last day in January