我的日期格式如下:
2019-02-12T09:29:34
我想通过以下方式对其进行转换
2019年2月12日星期二
为此,我使用一个函数:
public formatDate(date: string): string {
const DateChange: string = new Date(date).toString()
return format(DateChange, 'EEEE, d MMMM, yyyy');
}
这样称呼:
{{formatDate(history.dateTraitement)}}
不幸的是,我发现自己使用以下格式:
2222年2月2日,yyyy
问题出在哪里?
答案 0 :(得分:3)
假设您已经定义了如下数据变量
date: Date = new Date('2019-02-12T09:29:34');
您有以下两种方法
1-在html中使用角形管道
{{date | date:'fullDate'}}
2-在代码中使用角形管道(并在模块的提供程序中添加DatePipe)
dateString: string = '';
constructor(private datePipe: DatePipe) {
this.dateString = this.datePipe.transform(this.date, 'fullDate')
}
请参见此工作示例here
注意:您的日期字符串在时间部分中有一些空格,我认为这是拼写错误,不在您的真实数据中
查看其他格式选项(或创建自定义)here
答案 1 :(得分:1)
angular公开它自己的日期管道使用的formatDate函数,如果该日期管道对您不起作用并且您不处于依赖注入容易的上下文中,则可能要考虑使用它:
import {formatDate} from '@angular/common';
formatDate(myDate, 'full', 'en-US');
arg 1是日期(日期obj或字符串),arg 2是格式(速记或自定义),而arg 3是语言环境(通常为您提供有角度的数字,但是使用Directyl时必须提供) )
但是,由于您是在模板中使用此控件,因此,最好的选择是日期管道角度已经给您带来好处。