normalize time
by John Allan
HTML
<div id="display">
</div>
JavaScript
var times, normalizeTime;
times = ['9:00AM', '09:00aM', '9:00 AM', '07:00 AM', '12:00PM', '12:09PM', '9:00 PM', '12:13 pM', ' 12:13 pM ', '071:00 am', 'STEVE', 'ffsaf:00 am', '13:51 am','9:61am'];
normalizeTime = function (s) {
var hour, h, minute, m, meridiem, mm, sArray, formatted;
hour = s.match(/(^(?:\s*)(10|11|12))(?:\:)|(^(?:0)?(\d))(?:\:)/);
minute = s.match(/(?:\:)([0-5][0-9])/);
meridiem = s.match(/([A|P]M)(?:\s*)$/i);
if (!hour || (!hour[2] && !hour[4]) || !minute || !minute[1] || !meridiem || !meridiem[1]) {
return false;
}
h = hour[2] || hour[4];
m = minute[1];
mm = meridiem[1].toUpperCase();
return [h,':', m, ' ', mm].join('');
}
for (var i = 0, l = times.length; i < l; i++) {
var n;
n = normalizeTime(times[i]);
document.querySelector('#display').innerHTML += '<p>' + n + '</p>';
}