首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将"getHours()“方法的1-24小时更改为1-12小时

将"getHours()“方法的1-24小时更改为1-12小时
EN

Stack Overflow用户
提问于 2012-05-12 02:40:27
回答 6查看 52.1K关注 0票数 23

当我在javascript中使用"getHour()“方法时,它显示军事时间格式。我需要它显示1-12之间的数字小时而不是。有人能告诉我怎么做吗?下面是我使用的代码:

function updateclock()
{

    var time = new Date();
    var todisplay = '';

    if (time.getHours() < 10) todisplay += time.getHours();
    else todisplay += time.getHours();

    if (time.getMinutes() < 10) todisplay += ':0' + time.getMinutes();
    else todisplay += ':' + time.getMinutes();

    document.getElementById("clock").innerHTML = todisplay;
}
EN

回答 6

Stack Overflow用户

发布于 2014-07-17 21:42:19

为什么不用简单的方式呢?数学,各位!:)

// returns the hours number for a date, between 1 and 12
function hours12(date) { return (date.getHours() + 24) % 12 || 12; }
票数 46
EN

Stack Overflow用户

发布于 2017-06-26 09:23:19

其他答案确实非常好。但我认为,以下内容也可以包括在内。

var d = new Date();
var hour = d.getHours(); 
var minute = d.getMinutes();
var fulltime = "";

// create a 24 elements(0-23) array containing following values
const arrayHrs = [12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11];

    // since getMinutes() returns 0 to 9 for upto 9 minutes, not 00 to 09, we can do this
    if(minute < 10) {
        minute = "0" + minute;
    }

    if( hour < 12) {
        // Just for an example, if hour = 11 and minute = 29
        fulltime = arrayHrs[hour] + ":" + minute + " AM"; // fulltime = 11:29 AM
    }
    else {
        // similarly, if hour = 22 and minute = 8
        fulltime = arrayHrs[hour] + ":" + minute + " PM"; // fulltime = 10:08 PM
    }

查看我在arrayHrs中做了什么;)

票数 3
EN

Stack Overflow用户

发布于 2018-02-09 16:51:18

使用它的简单方法。

setInterval(function() {

var d = new Date();

document.getElementById("demo").innerHTML = 
d.getHours() % 12+" : "+d.getMinutes()+" : "+d.getSeconds();

}, 1000);
<p id="demo" ></p>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10556879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档