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

问题描述:

我有一个标记为'时间'的文本框,它接受12小时或24小时时间并将其转换为12小时格式,即(hh:mma)格式。以15分钟为增量格式的时间间隔

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

对于例如:

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

特殊情况是:

如果用户输入11:53A,它应该被转换成12:00P(这里通知AM/PM值的变化)

如果用户输入11:53P,它应该被转换到12:00a(通知am/pm值在这里变化)

这需要在javascript函数中完成。

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

您可以正确使用日期处理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

+0

注意:这可以正确处理12与24小时以及格式检查。 – Sajid 2011-04-11 04:32:03

+0

感谢您的帮助:) – gin 2011-04-11 08:09:11

+0

@gin:不客气。如果这是完整的答案,请将问题标记为已回答,以便线程关闭。 – Sajid 2011-04-11 19:50:27