2013-08-06 50 views
0

我的意思是有兩個時鐘,一個用於24小時的格式,另一種是12小時格式,jQuery的時鐘12/24小時一起

function updateClock() { 
    var currentTime = new Date(); 
    var currentHoursAP = currentTime.getHours(); 
    var currentHours = currentTime.getHours(); 
    var currentMinutes = currentTime.getMinutes(); 
    var currentSeconds = currentTime.getSeconds(); 

    // Pad the minutes and seconds with leading zeros, if required 
    currentMinutes = (currentMinutes < 10 ? "0" : "") + currentMinutes; 
    currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds; 

    // Choose either "AM" or "PM" as appropriate 
    var timeOfDay = (currentHours < 12) ? "AM" : "PM"; 

    // Convert the hours component to 12-hour format if needed 
    currentHoursAP = (currentHours > 12) ? currentHours - 12 : currentHours; 

    // Convert an hours component of "0" to "12" 
    currentHoursAP = (currentHours == 0) ? 12 : currentHours; 

    // Compose the string for display 
    var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + "/" + currentHoursAP + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay; 

    $("#clock").html(currentTimeString); 
} 

$(document).ready(function() { 
    setInterval(updateClock, 1000); 
}); 

,但最終到currentHourscurrentHoursAP和成爲完全相同的值。
我錯過了什麼?

+0

用調試程序遍歷代碼並找出自己的代碼。 –

+1

謝謝...:D –

回答

2

問題是

// Convert an hours component of "0" to "12" 
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP; 

如果currentHoursAP != 0然後,而不是設置回currentHoursAP值你回來將它設置爲currentHours

演示:Fiddle

+0

非常感謝你:) –

1

getHours是從零開始的(0 = 12 AM, 23 = 11 PM ),所以你需要調整檢查:

currentHoursAP = (currentHours >= 12) ? currentHours - 12 : currentHours; 
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP; 
+0

非常感謝你,這是問題:) –