bootstrap-datepicker 月份选择 完全指南

15 篇文章 0 订阅
3 篇文章 0 订阅

需求

日期选择框只能选择月份,且只能选择只能是当前月份前12个月到当前月份,且可以动态显示与删除日期选择框

插件

所用插件库:bootstrap-datepicker
Github:https://github.com/uxsolutions/bootstrap-datepicker
官方文档:https://bootstrap-datepicker.readthedocs.io/en/stable/

前端样式

日期选择框
这里写图片描述

相关功能

1.初始化(不赋值)

let dateMonthConfig = {
  language: "zh-CN", //语言
  todayHighlight: true, //是否今日高亮
  format: 'yyyymm', //点击月份后显示在input中的格式
  autoclose: true, //是否开启自动关闭
  startView: 'months', //开始视图层,为月视图层
  maxViewMode:'years', //最大视图层,为年视图层
  minViewMode:'months', //最小视图层,为月视图层
  startDate:moment().subtract(11,'month').toDate(), //控制可选的最早月份,为前12个月(含当前月)
  endDate:moment().toDate() //控制可选的最晚月份,为当前月
};
$('#your dom id').datepicker(dateMonthConfig);

2.初始化(赋值)

let dateMonthConfig = {
  language: "zh-CN", //语言
  todayHighlight: true, //是否今日高亮
  format: 'yyyymm', //点击月份后显示在input中的格式
  autoclose: true, //是否开启自动关闭
  startView: 'months', //开始视图层,为月视图层
  maxViewMode:'years', //最大视图层,为年视图层
  minViewMode:'months', //最小视图层,为月视图层
  startDate:moment().subtract(11,'month').toDate(), //控制可选的最早月份,为前12个月(含当前月)
  endDate:moment().toDate() //控制可选的最晚月份,为当前月
};
$('#your dom id').datepicker(dateMonthConfig);
//判断动态的时间(date:String 格式:'YYYYMM')是否为当前月,为当前月取月头日期
if(moment(date).isSame(moment().format('YYYYMM'),'month')){
  $('#your dom id').datepicker('setDate',moment(date+"01").startOf('month').toDate());
}
//不为当前月取月尾日期
else{
  $('#your dom id').datepicker('setDate',moment(date+"01").endOf('month').toDate());
}
//这里使用插件的setDate方法,设置为传递的时间的当前月的最后一天
//PS:必须设置为传递时间的最后一天,否则无法选择设置的最早月份(startDate是按天进行加减的)
//PS:配置里的format与moment里的format格式不一样,配置里的yyyymm = moment里的 YYYYMM

3.销毁

if(datepickerDom.data('datepicker')){
  datepickerDom.data('datepicker').destroy();
}

PS:这里在销毁前一定要判断是否为datepicker 绑定

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值