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>';
}