bootstrap-datetimepicker 简单设置及月份bug解决

年-月-日
$(".day").datetimepicker({
      autoclose: true,
      language: "zh-CN",
      startView: 2,
      minView: "month",
      format: "yyyy-mm-dd",
      initialDate: new Date(),
      forceParse: 0
    });
年-月
$(".month").datetimepicker({
      language: "zh-CN",
      format: "yyyy-mm",
      weekStart: 1,
      todayBtn: 1,
      autoclose: 1,
      todayHighlight: 1,
      startView: 3, // 这里就设置了默认视图为年视图
      minView: 3, // 设置最小视图为年视图
      forceParse: 0
    });
  $(".year").datetimepicker({
    format: "yyyy",
    weekStart: 1,
    autoclose: true,
    startView: 4,
    minView: 4,
    forceParse: false,
    language: "zh-CN"
  });
开始时间-结束时间
//	html 
<div class="input-daterange input-group" id="month" >
    <input  type="text" class="form-control" data-time="start"   >
     <span class="input-group-addon">至</span>
     <input  type="text" class="form-control" data-time="end"  >
</div>
// js
    $('#month [data-time="start"]').datetimepicker({
        language:  'zh-CN',
        todayBtn:  false,
        autoclose: true,
        startView: 3,//默认视图为年视图
        minView: 3,
        format: 'yyyy-mm',
        forceParse: true,
        endDate:TodayMonth
    }).on("changeDate",function(e){
        $('#month [data-time="end"]').datetimepicker("setStartDate",e.date);//根据前端选择的结束时间设置插件可选择的开始时间
    }).val(TodayMonth);

    $('#month [data-time="end"]').datetimepicker({
        language:  'zh-CN',
        todayBtn:  false,
        autoclose: true,
        startView: 3,
        minView: 3,
        format: 'yyyy-mm',
        forceParse: true,
        endDate:TodayMonth
    }).on("changeDate",function(e){
        $('#month [data-time="start"]').datetimepicker("setEndDate",e.date);//根据前端选择的开始时间设置插件可选择的结束时间
    }).val(TodayMonth);

注意!用 datetimepicker 时间插件获取日期的时间区间时,在应用过程中发现月份的选择有两个月的时间偏差,比如: 开始时间选择为2019-01,那结束时间的开始时间应该是在2019-01及之后,但是视图显示2019年的2、3月份都不可选。

解决方法:修改源码

650:  
		endMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() + 1 : Infinity,  // edit
        //  endMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() - 1 : Infinity,  // 源码
784:  
		var months = this.setTitle('.datetimepicker-months', year).end().find('.month').removeClass('active'); // edit 
        // var months = this.setTitle('.datetimepicker-months', year).end().find('span').removeClass('active'); // 源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值