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

如何在Bootstrap datepicker中实现指定日期高亮

核心问题说明

setDate是Bootstrap datepicker的实例调用方法,不属于初始化配置项,这是你之前配置不生效的核心原因。另外你配置的日期格式YYYY-MM-DD不符合组件规范,也会导致日期匹配异常,组件的年、月、日格式符需使用小写yyyy-mm-dd。


方案1:初始化时固定绑定指定日期

适用于页面加载时就可以从其他系统获取到目标日期的场景,初始化后调用setDate方法即可:

const picker = ele.datepicker({
    autoclose: true,
    keyboardNavigation: false,
    todayHighlight: true,
    format: 'yyyy-mm-dd',
    clearBtn: true,
});
// 设置目标日期,会自动填充到输入框,打开弹窗时自动定位到对应月份并高亮该日期
picker.datepicker('setDate', '2021-10-13');

方案2:点击弹窗时动态设置指定日期

适用于需要每次点击输入框时,才从其他系统实时拉取目标日期的场景,绑定show事件处理即可:

const picker = ele.datepicker({
    autoclose: true,
    keyboardNavigation: false,
    todayHighlight: true,
    format: 'yyyy-mm-dd',
    clearBtn: true,
}).on('show', function() {
    // 此处替换为你从其他系统获取目标日期的逻辑
    const targetDate = '2021-10-13';
    picker.datepicker('setDate', targetDate);
});

方案3:仅弹窗定位高亮,不自动填充输入框

如果你不需要把目标日期自动填充到输入框,只需要打开弹窗时默认定位到2021年10月、高亮13日供用户选择,可以使用如下配置:

ele.datepicker({
    autoclose: true,
    keyboardNavigation: false,
    todayHighlight: true,
    format: 'yyyy-mm-dd',
    clearBtn: true,
    // 配置默认打开的视图日期
    defaultViewDate: {
        year: 2021,
        month: 9, // 组件月份从0开始计数,10月对应数值9
        day: 13
    },
    // 自定义高亮指定日期
    beforeShowDay: function(date) {
        const targetDate = new Date(2021,9,13);
        if (date.getTime() === targetDate.getTime()) {
            return {
                classes: 'active highlight'
            };
        }
        return {};
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:18:01