2017-05-29 105 views
5

我在我的angular4项目中使用https://material.angular.io/components/component/datepicker。如何在输入框中格式化选定日期,例如“2017年5月29日”等短格式。目前,它显示为29/05/2017angular2材料2日期选择器 - 输出日期格式

示例代码:

<md-input-container> 
    <input mdInput readonly="true" [mdDatepicker]="startDatePicker" [mdDatepickerFilter]="myFilter" [min]="minDate" [max]="maxDate" class="date-text ng-dirty ng-valid-parse ng-touched ng-not-empty ng-valid ng-valid-required" placeholder="Choose a date"> 
    <button mdSuffix [mdDatepickerToggle]="startDatePicker" class="date-icon"></button> 
</md-input-container> 

<md-datepicker #startDatePicker [dateFormat]="'LL'" startView="month" [startAt]="currentDate"></md-datepicker> 

TS:

@ViewChild('startDatePicker') startDatePicker: MdDatepicker<Date>; 

PS。 [dateFormat] =“'LL'”不起作用

+0

请发布您的代码。您在发布日期格式的链接中有一个部分。 –

+0

更新:)谢谢 – d123546

+0

您可以请发布解决方案吗? –

回答

4

您目前无法轻松设置日期格式。 Material 2 Datepicker API中没有这种属性,更改格式的唯一正确方法是提供您自己的DateAdapter实现。官方文件没有提供任何有关的说明。现在只有一个基本的implementetion,它定义了根据区域的格式。有很多抱怨,更多​​的适配器应该很快来。您可以尝试使用基于从this问题线程的moment.js的问题或只是等待。

您还可以使用语言环境在Datepicker中获取不同的格式。但它只是一种变通方法,直到一个适当的官方的解决方案来:

export class AppModule { 
    constructor(private dateAdapter:DateAdapter<Date>) { 
    dateAdapter.setLocale('de'); // DD.MM.YYYY 
    } 
} 
+0

谢谢你的回答。我尝试玩这个适配器 – d123546

+0

对不起,我们在哪里可以得到像“de”这样的位置ID? – Einsamer

+0

@Einsamer,你的意思是一个[list](http:// www。 science.co.il/language/Locale-codes.php)可用的语言环境? – hiper2d

0

我宁愿使用模块供应商为:

@NgModule({ 
... 
providers: [ 
    { provide: LOCALE_ID, useValue: navigator.language } 
    ... 
    ] 
}) 
export class AppModule { } 

,或者您可以通过代替navigator.language“德”实现与上述相同。

相关问题