bootstrap-datepicker的bug:有日期输入的地方在下个月页面选择当天日期会以当天日期减少一个月显示

时间:2022-07-05 00:46:59

Bug复现详细描述:先选择今日日期,然后点击下个月的某个日期,注意,是直接点击下个月的某个日期,不能通过日期显示tab的下个月箭头进入下个月再来点击某个日期,然后再直接点击本月的今日日期。然后bug会出现,你会发现日期直接到了这个月的前一个月的今天。

例如:今天是2017年6月30日,打开日期点击选择7月1日。然后点击日期,选择回6月30日。你会发现日期变成了5月30日。

修复:bootstrap-datepicke源码:源码中搜索 click事件,你会发现只有一个click事件。然后将下面这段代码


if (target.hasClass('old')){
    if (month === 0) {
          month = 11;
          year = year - 1;
          monthChanged = true;
          yearChanged = true;
    } else{
          month = month - 1;
          monthChanged = true;
    }
}

增加一个判断,改为

if (target.hasClass('old')){
if (month === 0) {
month = 11;
year = year - 1;
monthChanged = true;
yearChanged = true;
} else if(!target.hasClass('today')){
month = month - 1;
monthChanged = true;
}else {
monthChanged = true;
}
}

OK。问题解决。原创文章,转载请附上本文链接。谢谢!