bootstrap-datepicker选择月份显示偏差2个月问题求助
解决bootstrap-datepicker月份显示偏差2个月的问题
嘿,这个月份偏移的问题我之前也碰到过!咱们一步步来排查和解决:
问题根源
最可能的原因是JavaScript Date对象的时区解析差异,或者bootstrap-datepicker在处理startDate的Date对象时,因为本地时区偏移导致日期被“提前”到了前一个月的末尾,进而让组件的月份计算出现了2个月的偏差。
比如你用new Date('January 1, 2018')初始化日期时,JavaScript会根据你的本地时区解析这个日期——如果你的时区是UTC+2,这个日期会被转换为UTC时间的2017年12月31日22:00,组件处理这个日期时就会出现计算偏差。
解决方案
方案1:用UTC时间初始化startDate
直接创建UTC标准的2018年1月1日,避免时区干扰:
// 注意:JavaScript的月份是0索引的,0代表1月 var date = new Date(Date.UTC(2018, 0, 1)); $('.datepicker').datepicker({ format: "MM yyyy", minViewMode: 'months', autoclose: true, startDate: date });
方案2:直接用字符串设置startDate
跳过Date对象的解析步骤,直接传递标准日期字符串:
$('.datepicker').datepicker({ format: "MM yyyy", minViewMode: 'months', autoclose: true, startDate: "2018-01-01" });
方案3:检查组件版本
如果上面两种方法都没用,可能是你用的bootstrap-datepicker版本存在旧bug,建议升级到最新稳定版,很多早期版本的月份视图计算问题已经被修复了。
问题截图参考

内容的提问来源于stack exchange,提问作者sameera207
相关产品推荐
相关产品推荐

