2014-06-06 159 views
1

我使用Kendo UI DateTimePicker來接受用戶在一天30分鐘內的輸入。我明確指定了一個30分鐘的時間間隔(無論如何,默認情況下都是30秒),我使用format和timeFormat選項來指定24小時時間格式,如下所示。Kendo UI DateTimePicker - 從00:30到24:00顯示30分鐘的時間間隔

當選擇時間下拉列表時,我希望值從00:30開始,然後轉到24:00而不是從00:00開始到23:30的通常行爲。雖然使用24:00表示午夜/一天結束在用戶界面中並不常見,但Wikipedia article on the 24 hour clock表示我們的要求並非前所未聞。

我已經通過DateTimePicker API documentation一個還不錯的樣子,但我無法找到任何 「官方支持」的方式來做到這一點。當我開始深入瞭解部件的JavaScript內容時,有什麼想法可以幫助我?我也想知道是否可以通過使用不同的文化來破解它?

要看到工作的例子,我創建了一個示例JSFiddle

$("#periodInput").kendoDateTimePicker({ 
    format: "dd/MM/yyyy HH:mm", 
    timeFormat: "HH:mm", 
    interval: 30 
}); 

回答

1

這劍道UI論壇中發帖"TimePicker does not conform to IS0 8601 3.5.2 on Time of Day midnight representations"說明根本問題。我試圖總結:

  • 劍道UI日期/ TimePicker控制與底層JavaScript Date object
  • ECMAScript 5. standard狀態的日期時間字符串格式是基於ISO 8601 擴展格式,其中包括午夜代表工作24:00
  • 有些瀏覽器支持解析字符串格式24:00但不是所有的時刻(35.0鉻,Safari瀏覽器7.0)
  • 據我所知沒有瀏覽器支持DateTimeFormat說明符,該說明符將在午夜24:00輸出。

在我看來,要解決這個問題使用DateTimePicker,我會在相當低的水平上砍掉Kendo代碼。雖然這聽起來很有趣,但目前對我的項目來說可能並不合適。

在審查要求後,我用DatePicker和單獨的DropDownList替換了DateTimePicker小部件。使用單獨的DropDownList允許我綁定到不是JavaScript Date對象的時間段列表,並且我可以顯示24:00的文本表示形式以指示一天的最後一個半小時。