如何获取当前月份,并基于月份获取Angular 2中的最后两个月

如何获取当前月份,并基于月份获取Angular 2中的最后两个月,angular,Angular,如何获取当前月份,并基于月份获取Angular 2中的最后两个月 我得到的当前月份如下所示: private _createMonthList(): any { var d = new Date(); d.setMonth(d.getMonth()); console.log('MONTH', d); } 但我想要的是这样一个列表: [2017年5月、2017年4月、2017年3月]。有什么想法吗?使用getUTC

如何获取当前月份,并基于月份获取Angular 2中的最后两个月

我得到的当前月份如下所示:

private _createMonthList(): any {
            var d = new Date();
            d.setMonth(d.getMonth());
            console.log('MONTH', d);
    }
但我想要的是这样一个列表:


[2017年5月、2017年4月、2017年3月]
。有什么想法吗?

使用getUTCMonth获取月份索引,并使用name创建一个数组month,从索引中获取月份名称

   var month= ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var date =new Date();
var n = date.getUTCMonth();

console.log(month[n] + ' ' +date.getUTCFullYear());
if(n != 0){
console.log(month[n-1] + ' ' +date.getUTCFullYear());
console.log(month[n-2] + ' ' +date.getUTCFullYear());
}else{
console.log(month[11] + ' ' +date.getUTCFullYear());
console.log(month[10] + ' ' +date.getUTCFullYear());
}

您需要将每个月的数组作为字符串进行维护。并在需要时考虑每年轮换:

private months=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
私人getPreviousMonth(d:日期,计数:编号){
让yearDiff=数学地板(计数/12);
让monthDiff=d.getUTCMonth()-(计数%12);
设m=monthDiff>=0?monthDiff:12+monthDiff;
设y=monthDiff>=0?d.getUTCFullYear()-yearDiff:d.getUTCFullYear()-(yearDiff+1);
返回`${this.months[m]}-${y}`;
}
私有createMonthList(){
设d=新日期();
设months=[this.getPreviousMonth(d,0),thsi.getPreviousMonth(d,1),this.getPreviousMonth(d,2)];
控制台日志(月);
}

但是请注意,如果您需要更多的日期操作,那么使用可能是一个更好的主意,因为它们可能会很繁琐。

您是否意识到如果您在1月份,则使用moment.js从日期计算当前月份,然后从包含所有日期的组件中应该包含的月份数组计算下一个月和上一个月月