2012-07-09 29 views
5

我需要創建一個「從......到」時間選擇併爲此創建2個TimePicker組件。因爲它背後的數據庫從幾年已經存在,並且使用24小時格式,在我的代碼,我設置TimePicker不允許「24:00」?

tpOpenFrom.setIs24HourView(true); 
tpOpenTo.setIs24HourView(true); 

我現在的問題是,因爲它似乎,「24:00」,不能選擇作爲「to」值,如在「23」(:00)之後,組件切換回「00」(:00),使得不可能發現用戶是否忘記了進行實際選擇如果「09:00」被輸入爲「從」時間並且「00:00」被輸入爲「到」時間。或者如果選擇了「00:00」到「00:00」:用戶是否忘記輸入任何內容或他是否打算定義「全天候開放」?

在24小時模式下,TimePicker應該確實允許輸入24:00。 ISO 8601中的24小時制系統將午夜定義爲特殊情況,可稱爲「00:00」和「24:00」,因此TimePicker應允許將小時數設置爲24,並自動阻止分鐘到00.

有沒有人有一個想法如何實現利用TimePicker?

+0

我自己遇到類似的問題;但似乎這個星球上的每個TimePicker忽略了ISO8601 5.3.2「午夜」的消歧。正如您所說,00:00和24:00都是按照ISO的「僅限時間」數據表示形式的有效值。 – Tim 2013-02-05 13:07:23

回答

2

我有一個自舉timepicker相同的問題,但不難實現。我正在使用Joris de Wit的時間選擇器(http://jdewit.github.io/bootstrap-timepicker/)。

搜索「24」並用「25」替換所有的出現,然後在bootstrap-timepicker.js中搜索「23」並用「24」替換它們。

如果你想允許像24:01,..,24:59這樣的時間,你就完成了。如果您只想接受24:00而不是24分鐘,請轉至getTime函數的第133行。

將下面的代碼在現有收益前(但不刪除):XX時間爲00:

if (this.hour == 24 && this.minute != 0) { 
    this.setTime('00:' + this.minute); 
    return '00:' + this.minute; 
} 

這將任何轉換24 XX。