我的意思是有两个时钟,一个是24小时格式,另一个是12小时格式,
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);
});
但最终到currentHours
和currentHoursAP
会变成完全相同的值
我错过了什么?
答案 0 :(得分:2)
问题是
// Convert an hours component of "0" to "12"
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP;
如果是currentHoursAP != 0
,那么您可以将其设置回currentHoursAP
currentHours
的值。
演示:Fiddle
答案 1 :(得分:1)
getHours
从零开始(0 = 12 AM, 23 = 11 PM
),因此您需要调整支票:
currentHoursAP = (currentHours >= 12) ? currentHours - 12 : currentHours;
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP;