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

jQuery DateTimePicker点击Now按钮重复点击显示旧日期问题求助

解决DateTimePicker“Now”按钮重复点击显示旧时间的问题

问题原因

你使用的jquery-ui-timepicker-addon 1.6.1版本存在Bug:点击“Now”按钮时,插件会缓存首次触发的时间,后续点击不会重新获取实时系统时间,导致显示旧值。

解决方案

方案1:升级插件版本

将jquery-ui-timepicker-addon升级到1.6.3及以上的稳定版本,新版本已修复该缓存问题,只需替换对应的CSS和JS引用即可。

方案2:手动绑定按钮事件(无需升级)

如果暂时无法升级插件,可通过手动监听“Now”按钮的点击事件,强制刷新时间:

修改后的JavaScript代码:

$('.from-date-picker').datetimepicker({
  dateFormat: "dd-M-yy",
  timeFormat: "hh:mm tt",
  showOn: "both",
  timeInput: true,
  stepHour: 1,
  stepMinute: 5,
  oneLine: true,
  controlType: 'select',
  buttonImageOnly: true,
  buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
  buttonText: "Select date"
});

// 修复Now按钮缓存问题
$(document).on('click', '.ui-datepicker-current', function() {
  const now = new Date();
  // 按配置格式格式化日期和时间
  const dateStr = $.datepicker.formatDate("dd-M-yy", now);
  const timeStr = $.datepicker.formatTime("hh:mm tt", { hour: now.getHours(), minute: now.getMinutes() });
  $('.from-date-picker').val(`${dateStr} ${timeStr}`);
  // 关闭日期选择器弹窗
  $('.ui-datepicker').hide();
});

代码说明

  • 通过事件委托监听动态生成的“Now”按钮(类名.ui-datepicker-current)的点击事件
  • 每次点击时重新获取当前系统时间,按照插件配置的格式格式化后赋值给输入框
  • 手动关闭弹窗,确保交互流程正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:59:59