这是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));
}
},
感谢您的回答并抱歉我的英语不好!
答案 0 :(得分:0)
jQuery UI datepicker仅处理日期。从您链接的代码中可以看出,传递给setDate
的日期仅用于设置currentDay
,currentMonth
和currentYear
的值。根据设计,所有其他日期信息都将被删除。
noChange
参数是一个标志,可能仅在内部使用,用于确定在更改值时是否调用notifyChange
。