我需要更改我的日期格式,问题是我不能使用moment.js,我只需要将日期从yyyy-mm-dd转换为dd-mm-yyyy。 我使用angular v 2.4.0。
答案 0 :(得分:22)
使用DatePipe
pipe
date_expression | date[:format]
在你的情况下
{{ date_expression | date:'dd-MM-yy' }}
如何在组件中使用管道:
NgModule({
....
providers: [DatePipe]
})
或
@Component({
....
providers: [DatePipe]
})
在您的组件中,将其设置为date
变量
constructor(private datePipe: DatePipe) {
}
ngOnInit() {
this.date = this.datePipe.transform(new Date(), 'dd-MM-yy');
}
答案 1 :(得分:3)
您可以创建自定义管道。请参阅以下代码。有关详细信息,请参阅DatePipe Documentation。
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({
name: 'customDateFormat',
})
export class customDateFormatPipe implements PipeTransform {
transform(value: string) {
var datePipe = new DatePipe("en-US");
value = datePipe.transform(value, 'dd-mm-yyyy');
return value;
}
}
在html中添加自定义管道,如下所示:
{{currentDate | customDateFormat }}
答案 2 :(得分:1)
你可以做的是创建一个像这样的函数
function formatDate() {
let addZeroToLoneFigure = (n) => n.toString().length === 1 ? '0' + n : n.toString();
let format = 'DD-MM-YYYY';
let d= new Date();
format.replace('DD', addZeroToLoneFigure(d.getDate()));
format.replace('MM', addZeroToLoneFigure(d.getMonth() + 1));
format.replace('YYYY', addZeroToLoneFigure(d.getFullYear()));
return format;
}