Código PHP:
    function verificarHora($edValor)
        {
                $es=false;        // indica si es falso o verdadero
                $salir=false;    // mientras sea falso verifica....
                $estado=0; 
                $delantero=0;
                $longitud=strlen($edValor);
                while(!$salir)
                {
                    switch($estado)
                    {
                        case 0:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if (($c=='0')||($c=='1'))
                            {
                                $estado=2;
                            }
                            elseif($c=='2')
                            {
                                $estado=3;
                            }
                            else 
                                $estado=11;
                            break;
                        case 2:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if ($this->esDigito($c))
                            {
                                $estado=4;
                            }
                            else 
                                $estado=11;
                            break;
                        case 3:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if (($c=='0')||($c=='1')||($c=='2')||($c=='3'))
                            {
                                $estado=4;
                            }
                            else 
                                $estado=11;
                            break;
                        case 4:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if ($c==':')
                            {
                                $estado=5;
                            }
                            else 
                                $estado=11;
                            break;
                        case 5:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if (($c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
                            {    
                                $estado=6;
                            }
                            else 
                                $estado=11;
                            break;
                        case 6:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if ($this->esDigito($c))
                            {
                                $estado=7;
                            }
                            else 
                                $estado=11;
                            break;
                        case 7:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if ($c==':')
                            {
                                $estado=8;
                            }
                            else 
                                $estado=11;
                            break;
                        case 8:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if (($c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
                            {    
                                $estado=9;
                            }
                            else 
                                $estado=11;
                            break;
                        case 9:    
                            $c=$edValor[$delantero];
                            $delantero++;
                            if ($this->esDigito($c))
                            {
                                $estado=10;
                            }
                            else 
                                $estado=11;
                            break;
                        case 10:    
                            if($delantero==$longitud)
                            {
                                $es=true;
                                $salir=true;
                            }
                            else
                            {
                                $estado=11;
                            }
                            break;
                        case 11:    
                            $salir=true;
                            break;
                        default:
                            echo "ocurrio un error!!";
                    }    // fin swhish
                }     //fin while
            return $es;
        }//FIN verficarHora()