【问题标题】:Time interval in 15-minutes increment format以 15 分钟为增量格式的时间间隔
【发布时间】:2011-04-11 03:58:06
【问题描述】:

我有一个标有“时间”的文本框,它接受 12 小时或 24 小时时间并将其转换为 12 小时格式,即 (hh:mma) 格式。

我的要求是现在将时间转换为 15 分钟增量格式。

例如:

如果用户输入 01:10a ,它应该自动转换为 01:15a。

特殊情况:

如果用户输入 11:53a ,则应转换为 12:00p(注意此处 am/pm 值更改)

如果用户输入 11:53p,则应将其转换为 12:00a(注意此处 am/pm 值更改)

这需要在 javascript 函数中完成。

请建议我应该使用什么逻辑进行此转换。

【问题讨论】:

    标签: javascript validation time


    【解决方案1】:

    您可以使用日期正确处理 60 分钟这一事实来执行此操作。

    var parts, d, s = '11:55pm';
    if (parts = /(\d+):(\d+)(\w+)?/.exec(s)) {
        // date is good
        d = new Date();
        if (parts[3] == undefined) {
            // 24 hr
            d.setHours(parseInt(parts[1]));
        } else {
            d.setHours(parseInt(parts[1]) + ((parts[3].indexOf('a') >= 0) ? 0 : 12));
        }
        // if this is 60, wraps hours...
        d.setMinutes(Math.round(parseInt(parts[2])/15)*15);
        alert(d.toString());
    }
    

    最后,只需使用the functions here 访问d 并根据需要进行格式化。

    【讨论】:

    • 注意:这可以正确处理 12 小时与 24 小时的时间以及格式检查。
    • @gin:不客气。如果这是完整的答案,请将问题标记为已回答,以便关闭线程。
    猜你喜欢
    • 2020-07-22
    • 1970-01-01
    • 2012-11-18
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2020-07-31
    相关资源
    最近更新 更多