FlexoCalendar周日历出错的解决方法
生活随笔
收集整理的這篇文章主要介紹了
FlexoCalendar周日历出错的解决方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
大部分日歷控件都是日視圖,月視圖和年視圖。由于項(xiàng)目需要周視圖,找到了一位大神寫(xiě)的插件FlexoCalendar,提供了周視圖。用得還挺順手,最后才發(fā)現(xiàn)每年12月份會(huì)出錯(cuò)。如下圖:
上圖是默認(rèn)的(不是用戶(hù)選擇)情況,2017-12-25,2017-12-31正常。
上圖是用戶(hù)選擇第二周之后出現(xiàn)了錯(cuò)誤,應(yīng)該是2017-12-10變成了2018-12-10.
接著我又看了2018年12月,依然出現(xiàn)錯(cuò)誤。很明顯是寫(xiě)這個(gè)日歷控件的大神把年份多加了一年,我們來(lái)看看這段代碼在哪里,在FlexoCalendar.js文件我們可以看到:
endYear = startMonth == 12 ? startYear + 1 : startYear ; 原來(lái)是當(dāng)12月份時(shí),大神把每一個(gè)周的endYear都加了1,明顯不對(duì),那我們稍微修改一下: endYear = startMonth == 12 ? startYear : startYear ; 這樣貌似對(duì)了,但是我們要想象一下大神為什么會(huì)有個(gè)加一呢,哦,應(yīng)該是當(dāng)?shù)谖逯苤腥绻霈F(xiàn)了下一年的日期就要加一,如下圖(2016年12月):
很明顯第五周中如果出現(xiàn)了下一年的日期,這樣也會(huì)出錯(cuò),那怎么改才會(huì)完全正確呢,那就是下面的代碼了:
endYear = startMonth == 12 && parseInt(endDay)<7? startYear +1 : startYear ;把原來(lái)的一行代碼換成上面我提供的,就沒(méi)問(wèn)題了,如下:
因時(shí)間倉(cāng)促,資質(zhì)有限,文中表述僅代表個(gè)人觀點(diǎn),如果有更好的想法,歡迎分享。
總結(jié)
以上是生活随笔為你收集整理的FlexoCalendar周日历出错的解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 移动端点击(click)事件延迟问题的产
- 下一篇: vue中通过post方式异步上传文件