时间间隔,以15分钟为增量格式

时间:2011-04-11 03:58:06

标签: javascript validation time

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

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

例如:

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

特殊情况:

如果用户输入11:53a,则应将其转换为12:00p(通知上午/下午值更改)

如果用户输入11:53p,则应将其转换为12:00a(此处通知上午/下午值更改)

这需要在javascript函数中完成。

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

1 个答案:

答案 0 :(得分:2)

您可以使用日期正确处理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并根据需要进行格式化。