jQueryUI datepicker('setDate')删除时间

时间:2010-08-16 06:23:35

标签: jquery jquery-ui datepicker

这是jQuery UI中的一个错误吗?当我调用.datepicker('setDate', date);date是带时间的日期对象时,datepicker会将date的时间设置为0:00?

如果我克隆变量..

var datewithtime = new Date();
var lTmpDate = datewithtime;
$('#Modal_KalendarTermin #DP_DatumVon').datepicker("setDate", lTmpDate);

.. datewithtime是一样的(没有时间 - 只有时间= 0:00的日期)。

我在jquery-ui.js - >中找到了第三个参数“noChange”。 serach为“_setDate: function”。为了什么?

摘录自jquery-ui.js

/* Set the date(s) directly. */
_setDate: function(inst, date, noChange) {
    var clear = !(date);
    var origMonth = inst.selectedMonth;
    var origYear = inst.selectedYear;
    date = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
    inst.selectedDay = inst.currentDay = date.getDate();
    inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
    inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear();
    if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
        this._notifyChange(inst);
    this._adjustInstDate(inst);
    if (inst.input) {
        inst.input.val(clear ? '' : this._formatDate(inst));
    }
},

感谢您的回答并抱歉我的英语不好!

1 个答案:

答案 0 :(得分:0)

jQuery UI datepicker仅处理日期。从您链接的代码中可以看出,传递给setDate的日期仅用于设置currentDaycurrentMonthcurrentYear的值。根据设计,所有其他日期信息都将被删除。

noChange参数是一个标志,可能仅在内部使用,用于确定在更改值时是否调用notifyChange