有什麼辦法可以配置md-datepicker在星期一開始的星期?默認情況下,它從星期天開始,沒有任何規定誰來改變它。MdDatePicker在星期一開始的星期
回答
你必須建立一個自定義的DateAdapter。 DateAdapter是一個實現DateAdapter接口的類。它必須有一堆預定義的函數實現,並且必須註冊爲DateAdapter提供者的useClass。
providers: [{provide: DateAdapter, useClass: CustomDateAdapter }]
日期適配器告訴datepicker類似如何在內部存儲日期/時間,如何在輸入和其他東西中顯示它們。
材料提供了一個實現DateAdapter接口的類:NativeDateAdapter。它告訴MdDatepicker如何使用javascript本地Date對象。但javascript日期對象有一些限制(例如,不可能告訴它你想如何呈現日期)。長話短說:只是擴展了Material提供的NativeDateAdapter。你想要做的是在這個plunk(基本上你想重寫NativeDateAdapter的函數:getFirstDayOfWeek :() => number
)中顯示,然後我會給出一些概述。
getFirstDayOfWeek(): number {
return 1;
}
在plunk中,你會看到一個custom-date-adapter.ts。這是我延長了NativeDateAdapter,覆蓋兩個功能:
1) parse: (value: any) => Date | null
2) getFirstDayOfWeek:()=> number
第一個功能意味着1)除其他事項外,創建什麼用戶選擇在日曆Date對象,和2)分析寫的是什麼在輸入一個日期對象。它解析一個日期以在內部存儲。
第二個函數(getFirstDayOfWeek)指示日曆在特定的星期幾(0 - 星期日,1 - 星期一,2 - 星期二...)開始。
另外還有一個有趣的format: (date: Date, displayFormat: Object) => string
函數可用於實現/重寫,它允許您定義日期字符串在從日曆彈出窗口中選擇之後必須顯示在輸入中的格式。
在plunk中,在main.ts中,您必須告訴Angular有一個使用自定義日期適配器(查看providers數組)。在這種情況下,我建立了這個龐然大物與巴西葡萄牙語一起工作(查看main.ts構造函數,獲取date.setLocale('pt-BR')
)。在這裏,我們以日/月/年爲單位,以星期一==「Segunda-Feira」的葡萄牙語呈現日期。 :D
還有一個MomentDateAdapter(基於Moment.js,而不僅僅是本地Date對象),在某些情況下,可以使您免於構建自定義日期適配器,因爲Moment.js已經處理了區域設置更有效的方式)。
希望它有幫助。
@jpavel需要更多幫助。
我試過了你的笨蛋,兩者都墜毀。控制檯日誌中的許多錯誤,輸出面板不顯示任何內容(僅「加載角度材料應用程序...」)。
我試圖採取你的代碼,並添加
providers: [{provide: DateAdapter, useClass: CustomDateAdapter }]
我的核心模塊。似乎沒有任何事情發生。我輸入並粘貼到輸入(日期)字段,並且parse()或format()都不會被調用(我添加了控制檯。log())。
- 1. 星期一從星期一開始JavaScript
- 2. 從星期一開始,星期幾不是星期一?
- 3. 作爲星期一或星期日influxdb使星期開始
- 4. 獲取本週的開始日期和結束日期(星期一從星期一開始,星期日結束)
- 5. 星期五開始「星期五」,php
- 6. 星期六開始星期的星期數
- 7. 獲取星期數從一個星期的日期開始
- 8. 查找當前星期的開始日期(星期一)
- 9. 創建周函數,而不是星期一開始的星期幾,星期一
- 10. 開始星期日的第一週的星期幾,星期六的星期的最後一天結束
- 11. 星期一開始的星期一/ Vanilla JS /沒有jQuery
- 12. 星期一從星期一開始如何簡化邏輯?
- 13. Objective-c從星期一開始計算星期幾,而不是星期天
- 14. SQL Server:星期一作爲星期的開始
- 15. MySQL DAYOFWEEK() - 我的星期從星期一開始
- 16. 從星期一,星期和年份開始的PHP
- 17. 顯示整個星期的開始日期爲星期六
- 18. 如何按星期分組日期字段,星期六開始星期幾?
- 19. C#3.0 - 如何從星期一開始按星期命名?
- 20. 假設星期一從星期一開始提取PostgreSQL中的日期字段
- 21. 如何獲得星期一開始的特定日期的星期幾?
- 22. 星期三開始的星期幾的SQL組合
- 23. 星期一 - 星期一在Date.js
- 24. 獲取星期五開始的星期列表
- 25. 星期五從星期開始的週數
- 26. 將星期數轉換爲從SSRS/SQL Server開始的星期
- 27. PHP星期一星期一和星期六日期問題
- 28. 獲取在Javascript一個星期的日子裏,周開始於星期天
- 29. Python2:在指定日期範圍內檢索星期日 - 星期六星期開始/結束日期
- 30. 創建星期變量開始一天
我發現可以做什麼,但不明白爲什麼。 正如我所說的,我將該提供程序添加到由App Module導入的Core Module。我想它會像服務一樣提供給整個應用程序。 我懷疑它可能不是這種情況,我也將提供對象添加到我的懶加載特徵模塊中,然後調用自定義適配器。 但是爲什麼?不應該把它添加到核心模塊嗎? – Alex
對不起。我已經解決了這個問題。 – jpavel