大部分日历控件都是日视图,月视图和年视图。由于项目需要周视图,找到了一位大神写的插件FlexoCalendar,提供了周视图。用得还挺顺手,最后才发现每年12月份会出错。怎么办呢?我来教你。
工具/原料
编程基础
方法/步骤
1
下图是默认的情况,2017-12-25,2017-12-31正常,没出问题。
2
下图是用户选择第二周之后出现了错误,应该是2017-12-10变成2018-12-10.
3
接着我又看了2018年12月,依然出现错误。很明显是写这个日历控件的人把年份多加了一年,来看看这段代码在哪里,在FlexoCalendar.js文件我们可以看到:endYear = startMonth == 12 ? startYear + 1 : startYear ;原来是当12月份时,大神把每一个周的endYear都加了1,明显不对,那我们稍微修改一下:endYear = startMonth == 12 ? startYear : startYear ;(继续看,没完,有的不对)
4
这样貌似对了,但是我们要想象一下大神为什么会有个加一呢,哦,应该是当第五周中如果出现了下一年的日期就要加一,如下图(2016年12月):
5
很明显第五周中如果出现了下一年的日期,这样也会出错,那怎么改才会完全正确呢,那就是下面的代码了
6
把原来的一行代码换成上面我提供的,就没问题了,如下:endYear = startMonth == 12 && parseInt(endDay)<7? startYear +1 : startYear ;这下就好啦!
下一篇:逃出小黑洞游戏攻略