如何获得当前月份并根据月份获得Angular 2中的最后两个月?
我这样得到当月:
private _createMonthList(): any {
var d = new Date();
d.setMonth(d.getMonth());
console.log('MONTH', d);
}
但我想要的是如下列表:
[May-2017, April-2017, March-2017]
。任何想法的人?
答案 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可能会更好,因为它们可能很乏味。