【问题标题】:Angular 4 - DateFormatter - how toAngular 4 - DateFormatter - 如何
【发布时间】:2018-01-20 20:06:56
【问题描述】:

我在 Angular 2 中有应用程序,它使用自定义格式化日期来波兰语:

return DateFormatter.format( new Date( date + ' 12:00:00' ), 'pl-PL', 'd MMMM y' );

可以通过导入类来实现

import { DateFormatter } from '@angular/common/src/facade/intl';

接下来,我将我的应用程序转换/升级到 Angular 4.3,这个类 (DateFormatter) 不再存在。

我有人知道它的位置,或者我应该使用什么其他方法来实现这种格式?

【问题讨论】:

    标签: angular internationalization formatdatetime


    【解决方案1】:

    DateFormatter 类目前可以在源代码中找到here

    但是,Angular 不允许从像这样的深度路径导入。如果@angular/common 没有公开您要查找的功能,则意味着它是私有的,您不应该使用它(这就是您的应用程序在升级后崩溃的原因)。

    考虑使用DatePipedate-fns 等实用程序库。

    【讨论】:

      【解决方案2】:

      在我们的应用程序中,我们使用date pipe。例如。 <p class="dIB">{{bfPreventer.nextControlDate | date: 'shortDate'}}</p>

      默认情况下,它采用浏览器的当前文化。但是您可以在启动时更改它。我不确定它是否完美,但它对我们很有效。

      @NgModule({
      bootstrap: [AppComponent],
      declarations: [
          ...pageComponents
      ],
      imports: [
          BrowserModule,
          ...
          TranslateModule.forRoot(),
      
      ],
      providers: [
      
          { provide: LOCALE_ID, useValue: window.navigator.language.indexOf("en") >= 0 ? "en-US" : "nb-NO" },
      
      ]})
      

      另外,请考虑到管道依赖于浏览器的 i18n API,所以旧的浏览器可能会出现问题。

      【讨论】:

        猜你喜欢
        • 2013-02-18
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 2017-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多