Kendo UI DateTimePicker - 从00:30到24:00显示30分钟的间隔

时间:2014-06-06 01:03:12

标签: javascript kendo-ui kendo-datetimepicker

我正在使用Kendo UI DateTimePicker接受一天30分钟的用户输入。我明确指定了30分钟的时间间隔(默认为30是默认值),我使用format和timeFormat选项来指定24小时时间格式,如下所示。

选择时间下拉列表时,我希望值从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 个答案:

答案 0 :(得分:1)

此Kendo UI论坛发布"TimePicker does not conform to IS0 8601 3.5.2 on Time of Day midnight representations"描述了潜在的问题。我的尝试总结是:

  • Kendo UI Date / TimePicker控件使用基础JavaScript Date object
  • ECMAScript 5. standard表示日期时间字符串格式基于ISO 8601 扩展格式,包括 24:00
  • 的午夜表示
  • 某些浏览器支持使用 24:00 解析字符串格式,但现在不支持解析(Chrome 35.0,Safari 7.0)
  • 据我所知,没有一个浏览器支持DateTimeFormat说明符,它将在午夜24:00输出。

在我看来,要使用DateTimePicker来解决这个问题,我会在相当低的水平上攻击Kendo代码。虽然这听起来很有趣,但目前我的项目可能不合适。

在查看了要求后,我将DateTimePicker小部件替换为DatePicker和单独的DropDownList。使用单独的DropDownList允许我绑定到不是JavaScript Date对象的时间段列表,我可以显示24:00的文本表示,以指示当天的最后半小时。