我有一個函數來顯示從兩分鐘延遲JavaScript的時間。唯一的問題是,當時間是例如下午2:00,該功能顯示2:0-2pm而不是1:58 pm。Javascript時間函數顯示不正確
這裏是下面的代碼:
function startTime() {
var today = new Date();
var h = today.getHours();
var m = eval(today.getMinutes()-2); // needs eval function
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
var time = h>=12?" PM":" AM" // am or pm
h = h % 12;
h = h ? h : 12; // the hour '0' should be '12'
m = m < 10 ? ''+m : m;
document.getElementById('txt').innerHTML =
"Time: " + h + ":" + m + ":" + s + time;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
<body onload="startTime()">
<div id="txt"></div>
爲什麼不使用'moment.js'? – jdmdevdotnet
不,**你不需要'eval'函數。 – Dai
你的'i =「0」+ i'函數並不符合你的想法。使用'i.toString()'。並使用'textContent'而不是'innerHTML'。 – Dai