【发布时间】:2012-01-14 07:25:09
【问题描述】:
这个方法在line 1380 in the jQuery ui datepicker:
_daylightSavingAdjust: function(date) {
if (!date) {
return null;
}
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
return date;
}
日期选择器代码中的许多地方都使用了它。据我所见,此代码只会将 2 小时添加到小时数 > 12 的任何日期,否则将小时数设置为 0。
我在控制台中尝试过:
date = new Date();
console.log("" + date);
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
console.log("" + date);
我得到了:
Tue Dec 06 2011 18:36:06 GMT+0100 (CET)
Tue Dec 06 2011 20:36:06 GMT+0100 (CET)
【问题讨论】:
-
我猜它会按照它所说的那样做,在有问题的情况下调整夏令时的时间。不过在我住的地方,夏令时只有一小时,而不是两小时?
-
在您的问题中添加了指向实际代码行的链接。那里有一条评论,但这并没有使问题更加清晰。在某些极端情况下,他们似乎试图触发日期增加到第二天,但我并没有真正遵循逻辑。请注意,当
<= 12时,该代码还明确将时间设置为0。 -
仔细查看后发现该方法严格用于日期。例如,在 datepicker.parseDate 方法中,在将新日期传递给 daytimeSavingAdjust 之后,会检查它是否已更改。如果是这样,则会引发错误。
-
我正在为 jQuery UI 日期选择器添加一个时间选择器,但我遇到了这个问题。
标签: jquery date datepicker