如何使用javascript将时间从24小时格式转换为12小时格式?

sar*_*ran 6 javascript time

该函数以24小时格式返回时间.

function fomartTimeShow(h) {
    return h < 10 ? "0" + h + ":00" : h + ":00";
}
Run Code Online (Sandbox Code Playgroud)

以24小时格式返回时间.我希望时间以12小时格式转换.
任何帮助将不胜感激.
谢谢.

Ben*_*Lee 13

只需使用模数12:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    return (h < 10 ? '0' : '') + h + ':00';
}
Run Code Online (Sandbox Code Playgroud)

模数(%)表示除以并取余数.例如17/12 = 1,其余为5.因此17%12的结果是5.而17小时是12小时内的小时5.

但请注意,此功能未完成,因为它不适用于0小时(或小时12).要修复它,你必须添加另一个检查:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    if (h === 0) h = 12;
    return (h < 10 ? '0' : '') + h + ':00';
}
Run Code Online (Sandbox Code Playgroud)

另请注意,您可以通过查看小时是小于12(上午)还是等于/大于(下午)来轻松添加子午线:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    if (h === 0) h = 12;
    return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}
Run Code Online (Sandbox Code Playgroud)

注意:以上所有假设此函数的参数是0到23之间的整数.