如何在Angular DatePipe月的缩写中不显示期间

时间:2019-05-15 00:09:04

标签: angular

我在应用程序的日期字段上使用日期管道。 例如,如果日期为2019年1月2日,我希望它显示“ Jan 2019”。此刻显示“ 2019年1月” 它在三个字母的缩写后面添加一个句点。

我当前在大括号内的表达式是:

{{ currentReportDate | date: 'MMM yyyy' }}

根据DatePipe documentation,它应该已经显示而没有缩写时间。

app.module文件中的我的提供程序如下:

 providers: [
    ConfigService,
    AuthGuard,
    { provide: APP_BASE_HREF, useValue: "" },
    { provide: LOCALE_ID, useValue: "en-AU" },
    { provide: "BASE_URL", useFactory: getBaseUrl },
    { provide: MAT_DATE_LOCALE, useValue: "en-AU" },
    { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
    { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
    { provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },
    UserService
  ],

有什么想法可以摆脱这个时期吗?

3 个答案:

答案 0 :(得分:0)

除日期格式错误外,我看不到当前代码示例的任何实际问题,应该是:

{{ currentReportDate | date: 'd MMM yyyy' }}

输出:2 Jan 2019

这是一个有效的示例:https://stackblitz.com/edit/angular-grgual

看到您的评论后,您可以随时执行:{{(currentReportDate | date: 'd MMM yyyy').replace(".", "???")}},但这绝对是一项肮脏的工作。

答案 1 :(得分:0)

或者,我建议您使用Facetime HD Camera而不是formatDate,以防止提供程序之间发生冲突。我假设您不想干扰您的提供程序,因为在组件的其他部分可能需要它们。

在component.ts上,您首先需要导入DatePipe

formatDate

然后,您可以通过执行以下操作来使用import { formatDate } from '@angular/common';

formatDate

这也应该给您相同的期望结果。

formatDate documentation

DEMO

答案 2 :(得分:0)

似乎根据en-AU Source Code LINK

的Angular语言环境定义显示了短月份。
export default [

    'en-AU', 
        ...

        ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']***,

        ...
]

en-AU的当下语言环境短个月格式似乎有些不同(无句点):

export default moment.defineLocale('en-au', {
    ...
    monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
    ...
});

因此,也许您可​​以利用片刻为您安排日期;可能会利用此moment.js pipes for Angular软件包。