2017-05-29 120 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「德」實現與上述相同。

相關問題