angular2 date pipe locale_id period

时间:2017-03-17 15:51:31

标签: javascript angular

使用丹麦语语言环境时,我遇到了angular2日期管道的问题。

当我格式化日期时:

{{myDate | date:'dd-MM-yyyy'}} 

它输出日期的日期,并带有这样的后缀:

17.-03-2017

尽管我希望它是这样的:

17-03-2017

区域设置在app.module中设置如下:

providers: [ {provide: LOCALE_ID, useValue: 'da-DK'} ]  

我已经使这个plnkr更清晰http://plnkr.co/edit/A5ddrKP5cmsSZ9bTqzPh

更新

它可能与日期格式为丹麦语的方式有关。见下文:

var locale = 'da-DK'; 
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; 
var date = new Date(2017,2,17); var result = new Intl.DateTimeFormat(locale, options).format(date); 
alert(result); 

变成 - > fredag​​ den 17. marts 2017

注意点

1 个答案:

答案 0 :(得分:2)

本地化是“独立于平台”,ECMAscript提供规范,每个Javascript引擎都提供自己的实现。

还有一个兼容性实现Intl.js,如果它尚不存在,它将提供API。您可以看到丹麦语(丹麦)here语言环境的实现,您将看到可用的格式,并且该日始终返回之后的时段。

 "availableFormats": {
                "d": "d.",
                "E": "ccc",
                "Ed": "E 'den' d.",
                "Ehm": "E h.mm a",
                "EHm": "E HH.mm",
                "Ehms": "E h.mm.ss a",
                "EHms": "E HH.mm.ss",
                "Gy": "y G",
                "GyMMM": "MMM y G",
                "GyMMMd": "d. MMM y G",

您可以创建自定义管道,并将其链接以删除期间

{{myDate | date:'dd-MM-yyyy'|removePeriod}}

@Pipe({name: 'removePeriod'})
    export class RemovePeriodPipe implements PipeTransform {
      transform(input: string) {
        return input.replace(/\./g, '');
      }
    }