如何在Angular中以字符串格式获取当前月份和年份?

时间:2019-01-29 07:37:49

标签: javascript angular ionic-framework

预期输出: 2019年1月1日 2019年2月2日

我在Angular .ts文件中需要它。不在HTML视图文件中。

3 个答案:

答案 0 :(得分:5)

您可以使用Date()

this.curdate = (new Date().getMonth() + 1).toString() + '-' + new Date().getFullYear().toString();

请注意,new Date().getMonth()从0到11开始,因此您需要+1使其从1到12。

更新:

要基于相关的post添加前导0,您可以执行以下操作:'0' + (new Date().getMonth() + 1).toString().slice(-2)

说明:

由于'0'不是数字,而是一个字符串,当您将(+)与另一个字符串相加时,它将被连接起来。然后.slice(-2)给我们字符串的最后两个字符。如果是一位数字,则为0x月;如果是两位数字,则为0 + xx月,返回。

例如参见代码段:

var d = '0' + (new Date().getMonth() + 1).toString().slice(-2) + '-' + new Date().getFullYear().toString();
document.getElementById("demo").innerHTML = d;
<p id="demo"></p>

答案 1 :(得分:2)

您可以使用内置的日期管道:

{{date | date:'MM-dd'}}

并传递您自己的格式。
更新
尝试使用类似JS的解决方案:

m = new Date().getMonth().toString() + 1;
y = new Date().getFullYear().toString();
return m + '-' + y;

答案 2 :(得分:1)

或者,您可以将DatePipeFormatDate导入component.ts。

1)DatePipe

import { DatePipe } from '@angular/common';

export class SampleComponent implements OnInit {   

constructor(private datePipe: DatePipe) {}

  transformDate(date) {
    return this.datePipe.transform(date, 'MM-yyyy');
  }
}

不要忘记将DatePipe添加到模块中的提供程序。

providers: [DatePipe]

2)formatDate

import { formatDate } from '@angular/common';

export class SampleComponent implements OnInit {

  constructor(@Inject(LOCALE_ID) private locale: string) {}

  transformDate(date) {
    return formatDate(date, 'MM-yyyy', this.locale);
  }
}