以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
。
注意:这可以正确处理12与24小时以及格式检查。 – Sajid 2011-04-11 04:32:03
感谢您的帮助:) – gin 2011-04-11 08:09:11
@gin:不客气。如果这是完整的答案,请将问题标记为已回答,以便线程关闭。 – Sajid 2011-04-11 19:50:27