You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery Time Picker设置最大时间为12:00 am无效,如何解决?

我之前也踩过jQuery Timepicker这个时间设置的小坑!咱们先把问题的根源理清楚,再给你解决办法:

首先得纠正一个常见的时间认知误区:在12小时制里,12:00am是午夜(当天的结束/次日的开始,对应24小时制的00:00),而当天晚上的11:59pm是在12:00am之前的——时间顺序是10am → 12pm(中午)→ 11:59pm → 12:00am(次日)。所以你设置minTime: '10'(上午10点)和maxTime: '12:00am'时,插件会把这个范围理解为「从当天上午10点到次日午夜」,那当天晚上11:59pm自然在允许范围内。

那根据你的实际需求,分两种情况解决:

情况1:你想限制最大时间为当天中午12点(不允许选下午/晚上的时间)

这应该是大多数人混淆am/pm时的真实需求,把maxTime改成'12:00pm'即可,完整代码如下:

$('#time1').timepicker({ 
  timeFormat: 'h:mm p', 
  interval: 15, 
  minTime: '10', 
  maxTime: '12:00pm', // 改成中午12点
  defaultTime: '10', 
  startTime: '10:00', 
  dynamic: false, 
  dropdown: true, 
  scrollbar: true 
});

情况2:你确实需要最大时间为午夜12:00am(仅允许选到次日凌晨)

如果你是想让时间范围覆盖当天10点到次日午夜,同时不想让用户选到当天晚上的时间(逻辑上有点矛盾,但假设是这个需求),可以改用24小时制的格式来明确边界,比如设置maxTime: '00:00',同时配合showDuration: false来避免跨天的显示问题:

$('#time1').timepicker({ 
  timeFormat: 'h:mm p', 
  interval: 15, 
  minTime: '10', 
  maxTime: '00:00', // 用24小时制明确午夜时间
  defaultTime: '10', 
  startTime: '10:00', 
  dynamic: false, 
  dropdown: true, 
  scrollbar: true,
  showDuration: false // 关闭时长显示,避免跨天混淆
});

另外补充个小技巧:如果要严格限制时间在当天内(不跨到次日),可以把maxTime设为'11:59pm'(或24小时制的'23:59'),这样就能覆盖当天10点到深夜的所有时间,同时不会允许次日的时间。

内容的提问来源于stack exchange,提问作者user9191441

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:51:41