所以我有一个角度应用程序(角度 8)将被英国、毛里求斯和南非(可能更多)使用。
如何根据用户的语言环境设置日期?
我会使用自定义管道吗?或者将其设置为 app.module 中的某种提供程序?
谢谢。
所以我有一个角度应用程序(角度 8)将被英国、毛里求斯和南非(可能更多)使用。
如何根据用户的语言环境设置日期?
我会使用自定义管道吗?或者将其设置为 app.module 中的某种提供程序?
谢谢。
在app.module
我这样设置MAT_DATE_LOCALE
值:
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: RequestInterceptor,
multi: true,
},
{ provide: MAT_DATE_LOCALE, useValue: 'ro-RO' }, //YOUR DESIRED LOCALE
DatePipe
],
mat-table
此外,在我使用管道等其他控件中:
<td mat-cell *matCellDef="let element" class="alignLeft"> {{ element.Date | date: 'dd/MM/yyyy HH:mm' }}
当内容是动态的时,您可以尝试使用它:
import { LOCALE_ID, Inject } from '@angular/core';
...
constructor(
@Inject(LOCALE_ID) public locale: string
) { }
并将其作为参数发送到自定义管道或其他相关方法。
让我知道这是否对你有用
通常我使用时刻库,并会创建一个管道以所需语言格式化日期,例如
import { Pipe, PipeTransform } from '@angular/core';
import * as moment from 'moment';
@Pipe({
name: 'customdate'
})
export class CustomDatePipe implements PipeTransform {
constructor() { }
transform(value: any, lng:string) {
return moment(value).lang(lng).format("MMM");
}
}
所以例如
{{项目日期 | customdate : 'en-us'}} =三月
{{项目日期 | customdate : 'de'}} = März
{{项目日期 | customdate : 'es'}} = Marzo