WP上的直播时间显示得很奇怪

时间:2016-12-03 作者:Eli

我试图在WordPress网站上用秒来显示实际时间,但由于某些原因,在分和秒上会显示第三位数字,如下所示:

5:019:014
以下是我使用的脚本:

function startTime() {
var d=new Date();
var h=d.getHours();
var m=d.getMinutes();
var s=d.getSeconds();
h = h % 12;
    h= h ? h : 12; // the hour \'0\' should be \'12\'
    var ampm=h >= 12 ? \'PM\' : \'AM\';
    m = m < 10 ? \'0\'+m : m;
    s = s <10 ? \'0\'+s: s;
m = checkTime(m);
s = checkTime(s);
document.getElementById(\'timeis\').innerHTML =" "+h+":"+m+":"+s;
}

function checkTime(i) {
var j = i;
if (i < 10) {
    j = "0" + i;
}
return j;
}

setInterval(function() {
startTime();
}, 500);

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

下面是代码的更新版本,修复了因冗余时间签入而导致的额外零startTime():

JavaScript

function startTime() {
    var d=new Date();
    var h=d.getHours();
    var m=d.getMinutes();
    var s=d.getSeconds();
    h = h % 12;
    h = h ? h : 12; // the hour \'0\' should be \'12\'
    var ampm = h >= 12 ? \'PM\' : \'AM\';

    m = checkTime(m);
    s = checkTime(s);
    document.getElementById(\'timeis\').innerHTML =" "+h+":"+m+":"+s;
}

function checkTime(i) {
    if ( i == 0 ) {
        return "00";
    }

    if ( i < 10 ) {
        i = "0" + i;
    }
    return i;
}

setInterval(function() {
    startTime();
}, 500);

HTML

<a id="timeis" href="#"></a>