以下是我正在处理的代码。我通过阅读本网站上的一个答案,将其从24小时更改为12小时格式。唯一的问题是5分钟前,时间是2:5,我希望它显示02:05。我不确定到底要改变什么。任何帮助将不胜感激。谢谢!
function theClock12hour()
{
function pad(n) {
return (n < 10) ? "0" + n : n;
}
var time = new Date();
var nHours = time.getHours();
var nMins = time.getMinutes();
if (nHours > 12) {
nHours -=12;
} else if (nHourse ===0) {
hours = 12;
}
document.getElementById("hourbox").innerHTML = nHours;
document.getElementById("minutebox").innerHTML = nMins;
var nDay = time.getDate();
document.getElementById("datebox").innerHTML = nDay;
var nMonth = time.getMonth();
if (nMonth == 0){ nMonth = 'JANUARY'; }
else if (nMonth == 1){ nMonth = 'FEBRUARY'; }
else if (nMonth == 2){ nMonth = 'MARCH'; }
else if (nMonth == 3){ nMonth = 'APRIL'; }
else if (nMonth == 4){ nMonth = 'MAY'; }
else if (nMonth == 5){ nMonth = 'JUNE'; }
else if (nMonth == 6){ nMonth = 'JULY'; }
else if (nMonth == 7){ nMonth = 'AUGUST'; }
else if (nMonth == 8){ nMonth = 'SEPTEMBER'; }
else if (nMonth == 9){ nMonth = 'OCTOBER'; }
else if (nMonth == 10){ nMonth = 'NOVEMBER'; }
else if (nMonth == 11){ nMonth = 'DECEMBER'; }
document.getElementById("monthbox").innerHTML = nMonth;
var nTday = time.getDay();
if (nTday == 0){ nTday='SUN'; }
else if (nTday == 1){ nTday='MON'; }
else if (nTday == 2){ nTday='TUE'; }
else if (nTday == 3){ nTday='WED'; }
else if (nTday == 4){ nTday='THU'; }
else if (nTday == 5){ nTday='FRI'; }
else if (nTday == 6){ nTday='SAT'; }
document.getElementById("daybox").innerHTML = nTday;
var nYear = time.getFullYear();
document.getElementById("yearbox").innerHTML = nYear;
timer = setTimeout("theClock12hour()",1000);
}
答案 0 :(得分:0)
如果添加围绕nMins变量的pad函数,您的代码可能会执行您想要的操作。
http://jsfiddle.net/queuehammer/T5R5C/
document.getElementById("minutebox").innerHTML = pad(nMins);
我也注意到nHours逻辑中存在一个问题
if (nHours > 12) {
nHours -=12;
} else if (nHourse === 0) {
hours = 12;
}
第一行检查nHours是否小于12,而else if检查nHours是否等于0.因为0 <0。 12如果要强制nHours为12而不是0,则不会达到第二个'if'。还有一些其他的小更新但逻辑没有其他更改。请参阅此代码和更新的小提琴。
if (nHours > 12 && nHours != 0) {
nHours -=12;
} else if (nHours == 0) {
nHours = 12;
}
我也用Moment编写了这个例子。我已经为自己查看了其他时间库,而且我已经确定了这个时刻。
http://jsfiddle.net/queuehammer/HhruW/
//More info at: http://momentjs.com/
document.getElementById("OurText").innerHTML = moment().format('MMMM Do YYYY, h:mm:ss a');