【问题标题】:Angular2 DatePipe is not formatting according to browser languageAngular2 DatePipe 未根据浏览器语言进行格式化
【发布时间】:2017-12-28 15:48:01
【问题描述】:

我正在使用 angular2 默认 DatePipe 根据浏览器区域设置/语言格式化日期。

在我的情况下,它总是根据英语格式化日期。

app.module.ts    
{
       provide: LOCALE_ID, useValue: "hi"
}

在我的自定义管道中,我使用 DI 在构造函数中创建了 DatePipe 对象。

myDatePipe.ts
public constructor(private translate: TranslateService,private datePipe: DatePipe, , @Inject(LOCALE_ID) locale: string)) { 
    console.log(locale); // This log string 'hi'
}

public transform(value: string, format: string) {
    // 'shortTime' format always return value in '5:15 am' format.
    // 'longDate' format always return value in '28 दिसंबर 2017' format.
    return this.datePipe.transform(value, format); 
}

我通过记录 Locale_ID 记录了当前应用的语言,它被记录为“hi”。

【问题讨论】:

    标签: angular date localization hindi date-pipe


    【解决方案1】:

    您最好的选择是创建您自己的 shortDate 管道并使用 NGX 翻译服务,将浏览器语言拉入并使用它来转换您的日期。这是我正在使用的短日期管道的示例

    这是 Angular 6,所以我也在使用 @angular/common 中提供的新 formatDate 功能,

    import { Pipe, PipeTransform} from '@angular/core';
    import { formatDate  } from '@angular/common';
    import { TranslateService } from '@ngx-translate/core';
    
    @Pipe({
      name: 'shortDate'
    })
    export class ShortDatePipe implements PipeTransform {
        constructor(private translateService: TranslateService) { }
    
        transform(value: string): string {
            var language: string = this.translateService.getBrowserCultureLang();
            console.log(language);
            return (value == "" || value == null) ? "" : formatDate(value, 'shortDate', language);
        }
    
    }
    

    如果你不在 angular6 上,你需要导入一个 datePipe,在你的构造函数中放置一个 datepipe 并使用它的变换

    类似这样的事情(未经证实或测试,就在我的脑海中)

    import { DatePipe } from '@angular/common';
    ...
        constructor(private translateService: TranslateService, 
                    private datePipe: DatePipe ) { }
    
    ...
    return this.datePipe.transform( value, 'shortDate',language);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2018-07-06
      • 1970-01-01
      相关资源
      最近更新 更多