IE9及以下版本的jQuery UI日期选择器问题。在UTC +2时区中显示错误的日期

时间:2016-10-04 06:37:25

标签: jquery jquery-ui datepicker

  • 使用 IE9 或以下。
  • 将计算机的时区更改为UTC + 2 -Amman。
  • 导航至https://jqueryui.com/datepicker/
  • 单击文本框以显示日期选择器控件。
  • 使用箭头转到2016年4月。
  • 您可以将2016年4月1日的日期视为星期四 INCORRECT
  • 使用 IE10 或以上,将2016年4月1日的日期显示为星期五正确

针对此错误的任何修复程序?

1 个答案:

答案 0 :(得分:0)

jQuery日期选择器控件依赖于JS Date函数来构建日历。显然,JS日期函数在IE9及以下版本中报告错误信息。

例如:
新日期(2016,3,1)
IE9及以下版本打印Thu Mar 31 23:00:00 UTC + 0200 2016 - INCORRECT
IE10及以上版画Fri Apr 1 01:00:00 UTC + 0300 2016 [date] Fri Apr 1 01:00:00 UTC + 0300 2016 - CORRECT

可能的修复:
编辑jQueryUI JS文件并更新函数_getFirstDayOfMonth,如下所示。

_getFirstDayOfMonth: function (year, month) {
            // This code is needed as IE9 and below reports the wrong date value for UTC+2 timezones
            if(navigator.userAgent.indexOf("MSIE 9.0") > -1 || navigator.userAgent.indexOf("MSIE 8.0") > -1 || navigator.userAgent.indexOf("MSIE 7.0") > -1)
                return new Date( year, month, 1,23 ).getDay();
            else
                return new Date( year, month, 1 ).getDay();
        }