如何在JavaScript中将零添加到一位数的时间值

时间:2013-04-01 21:11:42

标签: javascript html function

以下是我正在处理的代码。我通过阅读本网站上的一个答案,将其从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);
}

1 个答案:

答案 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.js

的评论

我也用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');