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

Bootstrap Datepicker仅显示年月时切换年份后下年按钮消失问题

Bootstrap Datepicker 设置日期范围后无法访问区间内最后一年的问题

问题描述

配置Bootstrap Datepicker仅选择年月,并设置startDate和endDate后,用户无法正常访问时间区间内的最后一年:点击「查看上一年」按钮后,「下一年」按钮会消失,导致无法切回当前年。

使用的配置代码如下:

$("#datepicker").datepicker({
    format: "mm/yyyy",
    startView: "months", 
    minViewMode: "months",
    multidate: true,
    multidateSeparator: ", ",
    startDate: new Date(2020, 0, 1),
    endDate: new Date(),
});

现象截图:

  • 初始化状态:初始化状态
  • 切换至上年后状态:切换至上年后状态

问题原因

当endDate设为当前日期(比如new Date()返回当天日期)时,Bootstrap Datepicker在年月视图下会判定整个当前年存在超出范围的日期(比如当前日期是5月20日,6-12月的日期都晚于endDate),因此直接禁用当前年的导航权限,导致切到上一年后无法返回。

解决方案

将endDate设置为当前年的最后一天,让组件认为整个当前年都在允许的时间范围内:

$("#datepicker").datepicker({
    format: "mm/yyyy",
    startView: "months", 
    minViewMode: "months",
    multidate: true,
    multidateSeparator: ", ",
    startDate: new Date(2020, 0, 1),
    // 设置为当前年的12月31日
    endDate: new Date(new Date().getFullYear(), 11, 31),
});

也可以拆分变量提升可读性:

const currentYear = new Date().getFullYear();
$("#datepicker").datepicker({
    format: "mm/yyyy",
    startView: "months", 
    minViewMode: "months",
    multidate: true,
    multidateSeparator: ", ",
    startDate: new Date(2020, 0, 1),
    endDate: new Date(currentYear, 11, 31)
});

修改后,组件会允许导航到当前年,「下一年」按钮不会消失,用户可以正常切换并选择年月。


内容的提问来源于stack exchange,提问作者Abdurrahman Sağır

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:32:45