有没有简单的方法在我的日期和时间之间添加“at”这个词,所以它看起来像这样:2015 年 1 月 20 日上午 11:49,而不是 2015 年 1 月 20 日上午 11:49。我试过了long
,full
但我不想显示秒数和语言环境。
2015-01-20 16:49:07+00:00
{{ myDate | date : 'medium' }}
有没有简单的方法在我的日期和时间之间添加“at”这个词,所以它看起来像这样:2015 年 1 月 20 日上午 11:49,而不是 2015 年 1 月 20 日上午 11:49。我试过了long
,full
但我不想显示秒数和语言环境。
2015-01-20 16:49:07+00:00
{{ myDate | date : 'medium' }}
您可以通过添加新的Custom Pipe
或处理您DatePipe (Angular built-in)
的组件
附上Stackblitz Demo供您参考
方法 #1 - 自定义管道
@Pipe({
name: 'dateAtInsert'
})
export class DateAtInsertPipe implements PipeTransform {
transform(value: string) {
return value
.replace(/,\s(?=\d+:)/g, ' ')
.split(/\s(?=\d+:)/g)
.join(' at ');
}
}
{{ today | date : dateFormat | datAtInsert }} // Dec 8, 2020 at 8:26 AM
方法 #2 - 组件中的日期管道
const today = new Date();
const transformDate = this.datePipe.transform(today, this.dateFormat);
this.formattedDate = transformDate
.replace(/,\s(?=\d+:)/g, ' ')
.split(/\s(?=\d+:)/g)
.join(' at ');
<h1>{{ formattedDate }}<h1> // Dec 8, 2020 at 8:26 AM
方法 #3 -at
在日期格式中添加(组件中的 DatePipe)
dateFormat: string = 'MMM d, y AT h:mm a'; // Need to use an uppercase AT since lowercase "a" is reserved with AM/PM in date formats
// While capital "A" and "T" doesn't hold any value in date formats so it's safe to use
const transformDate = this.datePipe.transform(this.today, this.dateFormat);
this.formattedDate = transformDate.replace('AT', 'at');
方法 #4 -at
在日期格式中添加(HTML 中的 DatePipe)
模板
{{ insertDateAt(today | date: 'MMM d, y AT h:mm a') }}
零件
insertDateAt(date: string): string {
return date.replace('AT', 'at');
}
笔记:
11:49 AM
避免使用medium
,因为它包括秒数,例如11:49:29 AM
MMM d, y, h:mm a
中找到更多格式