I need to change my date format, the problem is that I can't use moment.js, I need just to transform date from yyyy-mm-dd to dd-mm-yyyy. I use angular v 2.4.0.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Use DatePipe
pipe
date_expression | date[:format]
in your case
{{ date_expression | date:'dd-MM-yy' }}
How to use the pipe inside the component :
NgModule({
....
providers: [DatePipe]
})
or
@Component({
....
providers: [DatePipe]
})
In you component set it as a date
variable
constructor(private datePipe: DatePipe) {
}
ngOnInit() {
this.date = this.datePipe.transform(new Date(), 'dd-MM-yy');
}
回答2:
You can do it creating custom Pipe. Refer below code. For more info refer 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;
}
}
Add custom pipe in html as shown below:
{{currentDate | customDateFormat }}
回答3:
What you can do is create a function like this
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;
}