我在維護一個使用jQuery UI Timepicker並試圖排查錯誤的應用程序。jQuery UI Timepicker關閉1分鐘
基本上,這是如何重新創建它:
有2個timepickers,開始時間和結束時間
1.在開始時,選擇上午6:00(從小時區)
2.結束時,從小時區域)
3.從分鐘面積回去的啓動時間,並選擇00選擇下午12:00(
然後運行一些代碼以確定流逝的時間,以分鐘爲單位。該代碼是:
function setDuration() {
var $startTime = $(".field.times input[name$='StartTime']");
var $endTime = $(".field.times input[name$='EndTime']");
var $durationHours = $(".field.duration input[name$='DurationHours']");
var $durationMinutes = $(".field.duration input[name$='DurationMinutes']");
if ($startTime.val() != "" && $endTime.val() != "") {
var startTime = $startTime.timepicker ? $startTime.timepicker('getTimeAsDate') : Date.parse('01 jan 01 ' + $startTime.val(), "hh:mm tt");
var endTime = $endTime.timepicker ? $endTime.timepicker('getTimeAsDate') : Date.parse('01 jan 01 ' + $endTime.val(), "hh:mm tt");
var duration = (endTime - startTime)/1000/60;
//check whether spanning multiple days
if (startTime > endTime) {
duration = duration + (60 * 24);
}
$durationHours.val(Math.floor(duration/60));
$durationMinutes.val(duration % 60);
}
}
我發現完成步驟1和2後,一切都很好。
但是,如果我完成步驟3,endTime本地變量被分配一個日期對象,它的時間分量爲11:59而不是12:00。
關閉1分鐘。
如果我然後去結束時間選擇器,並從分鐘區域選擇了00,因爲我與開始時間選擇器,再經過時間的權利本身一樣。
作爲一個有趣的觀察調試時,兩個時間選擇器在步驟1和2之後1分鐘。也就是說,它們在5:59和11:59。經過的時間是正確的,因爲差別很重要。但是正如所說的,只要用戶從小時區域中選擇00,它似乎「對其自身」爲該選取器,差異超出1分鐘(直到其他選擇器完成相同的事情)。
JavaScript日期很難!幫助會很好。