如何获得当前月份并根据月份获得Angular 2中的最后两个月

时间:2017-05-29 10:17:07

标签: angular

如何获得当前月份并根据月份获得Angular 2中的最后两个月?

我这样得到当月:

private _createMonthList(): any {
            var d = new Date();
            d.setMonth(d.getMonth());
            console.log('MONTH', d);
    }

但我想要的是如下列表:

[May-2017, April-2017, March-2017]。任何想法的人?

2 个答案:

答案 0 :(得分:0)

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

   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());
}

答案 1 :(得分:0)

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

private months=["January","Febuary","March","April","May","June","July","August","September","October","November","December"];

private getPreviousMonth(d:Date,count:number){
    let yearDiff = Math.floor(count/12);
    let monthDiff= d.getUTCMonth() - (count % 12);
    let m = monthDiff>=0?monthDiff:12+monthDiff;
    let y= monthDiff>=0 ? d.getUTCFullYear()-yearDiff:d.getUTCFullYear()-(yearDiff+1);
    return `${this.months[m]}-${y}`;
}


private createMonthList(){
    let d = new Date();
    let months = [this.getPreviousMonth(d,0),thsi.getPreviousMonth(d,1),this.getPreviousMonth(d,2)];
    console.log(months);
}

但请注意,如果您需要更多日期操作,使用moment.js可能会更好,因为它们可能很乏味。