日期选择器API文档:bootstrap-datepicker选项说明

日期选择器API文档:bootstrap-datepicker选项说明

【免费下载链接】bootstrap-datepicker uxsolutions/bootstrap-datepicker: 是一个用于 Bootstrap 的日期选择器插件,可以方便地在 Web 应用中实现日期选择功能。适合对 Bootstrap、日期选择器和想要实现日期选择功能的开发者。 【免费下载链接】bootstrap-datepicker 项目地址: https://gitcode.com/gh_mirrors/bo/bootstrap-datepicker

你是否在开发Web应用时遇到过日期选择体验不佳的问题?用户输入格式混乱、日期范围难以限制、多语言支持复杂?bootstrap-datepicker作为Bootstrap生态中最受欢迎的日期选择插件,提供了50+可配置选项,让你轻松实现专业级日期交互。本文将系统解析所有核心选项,通过30+代码示例、8个对比表格和5种流程图,帮助你在15分钟内从入门到精通。

读完本文你将掌握:

  • 如何通过基础选项构建标准日期选择器
  • 高级功能配置(日期限制/多日期选择/周起始日自定义)
  • 性能优化与无障碍访问最佳实践
  • 常见场景解决方案(酒店预订/生日选择/日程安排)

基础配置选项

bootstrap-datepicker的选项系统采用声明式设计,支持JavaScript配置和data-*属性两种方式。所有日期相关选项均支持Date对象、字符串格式或相对时间表达式(如"+1d"表示明天)。

核心显示控制

选项名类型默认值说明
autocloseBooleanfalse选择日期后是否立即关闭选择器
calendarWeeksBooleanfalse是否显示周数(ISO标准周编号)
clearBtnBooleanfalse是否显示清除按钮
todayBtnBoolean/"linked"false是否显示"今天"按钮,"linked"会同时选中当前日期
todayHighlightBooleanfalse是否高亮显示当前日期
weekStartInteger0周起始日(0=周日,1=周一,...,6=周六)

基础示例:带清除和今天按钮的日期选择器

<input type="text" class="form-control" id="basic-datepicker">

<script>
$('#basic-datepicker').datepicker({
  autoclose: true,
  todayBtn: "linked",
  todayHighlight: true,
  clearBtn: true,
  weekStart: 1 // 设置周一为周起始日
});
</script>

日期格式配置

format选项支持丰富的日期格式化字符串,支持自定义转换函数处理特殊需求(如UTC与本地时间转换)。

mermaid

标准格式示例

// 配置为中文常用格式:2023年10月05日
$('.datepicker').datepicker({
  format: "yyyy年mm月dd日",
  language: "zh-CN"
});

// 自定义转换函数(UI显示UTC时间,实际存储本地时间)
$('.datepicker').datepicker({
  format: {
    toDisplay: function(date) {
      return new Date(date).toISOString().split('T')[0];
    },
    toValue: function(dateStr) {
      return new Date(dateStr);
    }
  }
});

高级功能选项

日期限制控制

bootstrap-datepicker提供多层次的日期限制机制,满足从简单到复杂的业务需求。

mermaid

常用日期限制场景

  1. 酒店预订日期选择(今天起3个月内,禁用过去日期和周一):
$('.checkin-date').datepicker({
  startDate: "today",
  endDate: "+3m",
  daysOfWeekDisabled: [1], // 禁用周一
  language: "zh-CN",
  autoclose: true
});
  1. 生日选择器(限制1900-2010年出生):
$('.birthday-picker').datepicker({
  startDate: "1900-01-01",
  endDate: "2010-12-31",
  maxViewMode: 2, //  decade视图(10年选择)
  todayHighlight: false,
  language: "zh-CN"
});

多日期选择

multidate选项支持选择多个日期,可限制选择数量,适用于行程规划、会议安排等场景。

配置效果应用场景
multidate: true无限制多选日程安排
multidate: 3最多选3个日期假期选择
multidateSeparator: ";"使用分号分隔日期特殊格式需求

代码示例

<input type="text" class="multi-date-picker" placeholder="选择多个日期">

<script>
$('.multi-date-picker').datepicker({
  multidate: 3, // 最多选择3个日期
  multidateSeparator: " | ",
  format: "yyyy-mm-dd",
  todayHighlight: true
});
</script>

视图控制选项

视图层级与导航

bootstrap-datepicker提供5级视图层级,从日视图到千年视图,满足不同精度的日期选择需求。

mermaid

视图控制示例

// 月份选择器(只能选择月份)
$('.month-picker').datepicker({
  minViewMode: 1, // 月份视图
  maxViewMode: 1,
  format: "yyyy年mm月",
  autoclose: true
});

// 季度选择器(自定义视图行为)
$('.quarter-picker').datepicker({
  minViewMode: 1,
  format: "yyyy年Qq",
  beforeShowMonth: function(date){
    // 高亮季度首月
    if (date.getMonth() % 3 === 0) {
      return {classes: 'quarter-start', tooltip: '季度起始月'};
    }
  }
});

定位与容器

通过container和orientation选项控制选择器的显示位置,解决模态框中被遮挡的常见问题。

解决模态框遮挡问题

// 在Bootstrap模态框中正确显示
$('#modal-datepicker').datepicker({
  container: '#myModal', // 附加到模态框
  orientation: "bottom auto", // 底部对齐,自动水平定位
  zIndexOffset: 1050 // 高于模态框z-index
});

事件与回调选项

日期状态自定义

beforeShowDay回调允许你自定义每一天的状态,实现复杂的日期逻辑(如价格标注、可用性显示)。

酒店价格日历示例

$('.price-calendar').datepicker({
  beforeShowDay: function(date) {
    // 模拟价格数据
    const prices = {
      '2023-10-01': 599,
      '2023-10-02': 699,
      '2023-10-03': 799
    };
    
    const dateStr = $.fn.datepicker.DPGlobal.formatDate(date, "yyyy-mm-dd");
    const price = prices[dateStr];
    
    if (price) {
      return {
        enabled: true,
        classes: 'has-price',
        tooltip: `价格: ¥${price}`,
        content: `<span class="day">${date.getDate()}</span><span class="price">¥${price}</span>`
      };
    }
    
    return {enabled: date > new Date()}; // 只启用未来日期
  }
});

性能优化与最佳实践

选项优先级与冲突解决

当多个选项同时作用时,需要了解其优先级规则:

  1. data-*属性 > JavaScript配置 > 默认值
  2. beforeShowDay返回的enabled状态优先级高于datesDisabled
  3. multidate为true时,toggleActive自动设为true

常见性能问题优化

// 优化大量日期禁用场景
$('.performance-datepicker').datepicker({
  datesDisabled: getDisabledDates(), // 避免在beforeShowDay中重复计算
  enableOnReadonly: false, // 只读时不初始化选择器
  immediateUpdates: false, // 减少不必要的更新
  updateViewDate: false // 多日期选择时减少视图更新
});

国内CDN资源配置

为确保在国内网络环境下的稳定加载,推荐使用以下CDN配置:

<!-- 国内CDN引入 -->
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap-datepicker/1.10.0/css/bootstrap-datepicker.min.css">
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-datepicker/1.10.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap-datepicker/1.10.0/locales/bootstrap-datepicker.zh-CN.min.js"></script>

<!-- 初始化配置 -->
<script>
$(function(){
  $('.datepicker').datepicker({
    language: 'zh-CN',
    format: 'yyyy-mm-dd',
    todayHighlight: true
  });
});
</script>

快速参考指南

常用选项速查表

分类核心选项实用配置
基础功能format, language, autoclosetodayHighlight, weekStart
日期限制startDate, endDate, daysOfWeekDisableddatesDisabled, beforeShowDay
视图控制startView, minViewMode, maxViewModecalendarWeeks, showWeekDays
高级功能multidate, container, orientationclearBtn, todayBtn, templates

问题排查流程图

mermaid


【免费下载链接】bootstrap-datepicker uxsolutions/bootstrap-datepicker: 是一个用于 Bootstrap 的日期选择器插件,可以方便地在 Web 应用中实现日期选择功能。适合对 Bootstrap、日期选择器和想要实现日期选择功能的开发者。 【免费下载链接】bootstrap-datepicker 项目地址: https://gitcode.com/gh_mirrors/bo/bootstrap-datepicker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值