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

Flatpicker配置defaultHour和defaultMinute不生效,选日期无法默认当前时间

问题根因

你配置的defaultHour、defaultMinute仅在Flatpicker初始化时生效,后续手动选择新日期时不会动态重新获取当前时间,因此会默认回落到Flatpicker内置的12:00默认值。

修复方案

新增onChange回调处理选中日期的时间自动填充逻辑,同时不覆盖Django返回的已有时间值,修改后完整配置如下:

$('.datepicker').flatpickr({
    dateFormat: "d-m-Y H:i:S",
    enableTime: true,
    // enableSeconds: true,
    allowInput: true,
    time_24hr: true,
    minuteIncrement: 1,
    // 保留初始化时的默认时间配置
    defaultHour: new Date().getHours(),
    defaultMinute: new Date().getMinutes(),
    // 新增选中日期回调
    onChange: function(selectedDates, dateStr, instance) {
        // 仅当存在选中日期、且无初始预设值(非Django加载的已有数据)时执行
        if (selectedDates.length > 0 && !instance.config.defaultDate) {
            const now = new Date();
            const targetDate = selectedDates[0];
            // 替换选中日期的时分秒为当前时间
            targetDate.setHours(now.getHours());
            targetDate.setMinutes(now.getMinutes());
            targetDate.setSeconds(now.getSeconds());
            // 第二个参数设为false避免触发二次onChange导致循环
            instance.setDate(targetDate, false);
        }
    }
});

注意事项

  • 若Django返回的数据已正确绑定到输入框的value属性,Flatpicker初始化时会自动读取该值作为defaultDate,不会被上述逻辑覆盖,原有时间的展示逻辑不受影响。
  • 若你需要实现「修改已有数据的日期时也自动更新为当前时间」的效果,删除判断条件里的&& !instance.config.defaultDate即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:06:03