【问题标题】:JavaScript isolate and format hours and minutes as 4-digit number [duplicate]JavaScript将小时和分钟隔离并格式化为4位数字[重复]
【发布时间】:2016-12-27 19:52:47
【问题描述】:

我正在做一个项目,我需要单独获取小时和分钟,而不用分号 (:) 分隔它们,并将它们表示为一个变量 myTime,作为 4 位数字。这是我的代码:

var now = new Date();
var time = now.toString().substr(16,5)

【问题讨论】:

  • now.getHours() + '' + now.getMinutes() 虽然如果你想要它作为一个实际的 number (这看起来很奇怪)你必须将它转换为一个数字。如果你想要两位数,最好只是格式化它,比如 toLocaleString 或类似的。
  • 简单的解决方案是使用库momentjs。有了它,你可以写 moment().format('HHmm');你应该得到正确格式化的时间

标签: javascript


【解决方案1】:

使用 Date 对象的 .getHours().getMinutes() 方法来获取这些数字。要获得 4 位数字表示(作为零填充字符串),请根据需要连接和零填充 ('0000' + (hours * 100 + minutes)).slice(-4),如下所示:

var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var myTime = ('0000' + (hours * 100 + minutes)).slice(-4);
//note that myTime is a zero-padded string of length 4

console.log(now.toString(), hours, minutes, myTime);

【讨论】:

  • hhmm 是一个 字符串 而不是数字可能毫无价值。不太确定 OP 想要什么。
  • @FelixKling,最初是在文本中这样做的,在您的建议之后也在示例代码中添加了注释。
【解决方案2】:

要从日期时间获取小时或分钟,请使用关联函数 myDate.getHours() 或 myDate.getMinutes()

编辑:您可能不想要军事时间,所以添加 12 小时转换...

var mt = getHoursMinutesSeconds(new Date());
alert(mt);

    function getHoursMinutesSeconds(date) {
        var h = date.getHours();            
        h = ((h + 11) % 12 + 1);
        var m = date.getMinutes();
        var myTime =  addZero(h) + addZero(m);
        return myTime;
        }


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    相关资源
    最近更新 更多