6

我需要创建一个“从……到”时间选择并为此创建 2 个 TimePicker 组件。因为它背后的数据库多年来已经存在并且使用 24 小时格式,所以在我的代码中,我正在设置

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 实现这一目标?

4

1 回答 1

2

我在使用引导时间选择器时遇到了同样的问题,但实现起来并不难。我正在使用 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 行。

将以下代码放在现有返回之前(但不要删除它):

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

这会将任何 24:XX 时间转换为 00:XX。

于 2014-04-10T16:29:28.970 回答