Validar formato de hora usando preg_match

Eu quero validar uma entrada de tempo (como 10:30 da manhã, 02:30 da tarde) usandopreg_match()

Eu uso isso,

 $pattern   =   "/([1-12]):([0-5])([0-9])( )(am|pm|AM|PM)/";
 if(preg_match($pattern,$time)){
   return true;
 }

Mas quando eu dou uma entrada como10:30 pmxxxx não será validado. Eu não sei se o método está correto ou não. Ajuda por favor.

questionAnswers(3)

yourAnswerToTheQuestion