我可以做类似的事情:
var format = "ampm";
var time = '22:15:05';
if(format == "ampm") {
return '10:15 pm';
} else {
return '22:15';
}
我发现的所有示例都使用了具有当前日期和时间的新Date(),但在我的情况下,我只需要从数据库传递时间字符串。
答案 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;
请注意它会剥去秒数;没有四舍五入。
答案 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'))