我在应用程序的日期字段上使用日期管道。 例如,如果日期为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
],
有什么想法可以摆脱这个时期吗?
答案 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
这也应该给您相同的期望结果。
答案 2 :(得分:0)
似乎根据en-AU
Source Code LINK
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软件包。