datepicker日期在ipad中不准确

时间:2014-01-16 09:45:32

标签: javascript jquery jquery-ui date jquery-ui-datepicker

我使用以下代码开发了一个jQuery datepicker实例。

$(function() {
    $('.datepicker').datepicker({  
        inline: true,
        showButtonPanel: true, //Default Button Panel is customized in jQuery UI Soucre - Line Number : 9265 
        showOtherMonths: true,
        showOn: "both",
        buttonImage: "/images/calendar.png",//custom icon trigger -> positioned in CSS
        buttonImageOnly: true,
        //beforeShowDay:function(date){
            //var blockDates = [""];
            //var currentDateString = $.datepicker.formatDate(date);
            //return [blockDates.indexOf(currentDateString) == -1 ];
        //},
        onSelect:function(date,inst){
            if(inst.id != "to" && date != ""){
                var numOfDays = 2;
                var date = $.datepicker.parseDate('mm/dd/yy', date);
                date.setDate(date.getDate('mm/dd/yy') + numOfDays);

                setTimeout(function () {
                    $("#to").datepicker('option', 'minDate', date);
                    $("#to").datepicker('show');
                    $("#to").datepicker('setDate',date.toLocaleDateString());
                }, 10);
            }
        }
    }); 
});

我有两个带有datepicker实例的输入。在第一个我选择一个日期,并使用我填充第二个日期的日期。当我在桌面上测试它时,我得到了正确的日期。但问题是我在iPad上进行了测试,并且计算的日期没有提前两天。日期提前7个月!我不知道代码有什么问题!有什么帮助吗?

我已经在ipad的safari + google chrome中进行了测试。结果是一样的。

1 个答案:

答案 0 :(得分:1)

  • Date.getDate()不接受任何参数。
  • datepicker.setDate()愉快地接受JavaScript日期

尝试修改您的代码:

    onSelect: function (date, inst) {
        if (inst.id != "to") {
            var numOfDays = 2;
            var date = $.datepicker.parseDate("mm/dd/yy", date);
            date.setDate(date.getDate() + numOfDays);
            $("#to").datepicker("option", "minDate", date);
            $("#to").datepicker("setDate", date);
            setTimeout(function () {
                $("#to").datepicker("show");
            }, 10);
        }
    }