manolegal 12 Denunciar post Postado Março 1, 2011 Ola amigos. Estou precisando validar campo tipo hora no PHP. Tentei varios exemplos mas nao consegui resultado satisfatorio. Exemplos testados: $hora_saida = "05:30"; if(!ereg("^([0-1][0-9]|[2][0-3]):[0-5]0-9]$", $hora_saida)){ if(!ereg("^[0-2]{1}[0-4]{1}:[0-5]{1}[0-9]{1}$", $hora_saida)){ Se alguem tiver alguma sugestao, desde ja agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Março 1, 2011 Pra começar, utilize a função preg_match pois é melhor em performance e a função ereg está marcada como "deprecated" a partir da versão 5.3 do PHP . Para validar hora com expressões regulares nesse formato que você passou fica assim: $hora = '05:30'; if (preg_match('/^[0-9]{2}:[0-9]{2}$/', $hora)) { echo '<p>Hora válida!</p>'; } else { echo '<p>Hora inválida!</p>'; } Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 1, 2011 Ola Leo. Obrigado pela força. Acho que esta funçao nao valida valores como $hora = '05:71'; Preciso que valide somente horas validas (até 23:59). No aguardo. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Março 1, 2011 Sim, isso serve apenas para validar o formato (00:00). Se quiser algo mais complexo recomendo que estude expressões regulares. ;) Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 2, 2011 Ola Léo. Consegui resolver meu problema. Fiz +- assim: if (preg_match('/^[0-9]{2}:[0-9]{2}$/', $hora)) { echo ................. Fiz ainda: $horas = substr("$hora", 0,2); $minutos = substr("$hora", 3,2); if (($horas > "23") OR ($minutos > "59")) { exho..... Resolveu certinho meu problema. Obrigado pela força. Até a próxima. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites