我有一个标有“时间”的文本框,可以接受12小时或24小时的时间,并将其转换为12小时格式,即(hh:mma)格式。
我的要求是现在将时间转换为15分钟增量格式。
例如:
如果用户输入01:10a,则应自动转换为01:15a。
特殊情况:
如果用户输入11:53a,则应将其转换为12:00p(通知上午/下午值更改)
如果用户输入11:53p,则应将其转换为12:00a(此处通知上午/下午值更改)
这需要在javascript函数中完成。
请建议我应该使用什么逻辑来进行此转换。
答案 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
并根据需要进行格式化。