Javascript格式时间军事上午从字符串

时间:2016-04-15 18:09:48

标签: javascript datetime

我可以做类似的事情:

var format = "ampm";
var time = '22:15:05';

if(format == "ampm") {
   return '10:15 pm';
} else {
   return '22:15';
}

我发现的所有示例都使用了具有当前日期和时间的新Date(),但在我的情况下,我只需要从数据库传递时间字符串。

2 个答案:

答案 0 :(得分:0)

以下是您可以使用的功能:



function timeFormat(time, format) {
    var parts = time.split(':');
    var hour = parseInt(parts[0]);
    var suffix = '';
    if (format === 'ampm') {
       suffix = hour >= 12 ? ' pm' : ' am';
       hour = (hour + 11) % 12 + 1;
    }
    return ('0' + hour).substr(-2) + ':' + parts[1] + suffix;
}

// Demo with some sample input
var input = ['00:21:13', '11:59:20', '12:01:33', '16:00:00', '23:59:59'];
for (var time of input) {
    document.write(time + ' = ' + timeFormat(time, 'ampm') + '<br>');
}
&#13;
&#13;
&#13;

请注意它会剥去秒数;没有四舍五入。

答案 1 :(得分:0)

这是我使用if语句的方式。

注意:它不需要几秒钟。

const converTime = (time) => {
  let hour = (time.split(':'))[0]
  let min = (time.split(':'))[1]
  let part = hour > 12 ? 'pm' : 'am';
  
  min = (min+'').length == 1 ? `0${min}` : min;
  hour = hour > 12 ? hour - 12 : hour;
  hour = (hour+'').length == 1 ? `0${hour}` : hour;

  return (`${hour}:${min} ${part}`)
}

console.log(converTime('18:00:00'))
console.log(converTime('6:5:00'))
console.log(converTime('23:58:24'))