Ciao!
ho un form nel quale inserisco l'orario (che č di tipo time). Quando con il post richiamo il dato inserito devo controllare che l'orario sia scritto correttamente ad esempio
09:30
e non
9.30
mi sapete aiutare per favore?Grazie!
Ciao!
ho un form nel quale inserisco l'orario (che č di tipo time). Quando con il post richiamo il dato inserito devo controllare che l'orario sia scritto correttamente ad esempio
09:30
e non
9.30
mi sapete aiutare per favore?Grazie!
salvo errori stupidi di sintassi questo controllo dovrebbe andare, valuta prima di tutto se hai scritto un massimo di 2 caratteri numerici per le ore e per i minuti separati dai 2 punti.codice:if(preg_match('/^([\d]{1,2}):([\d]{1,2})$/', $_POST['ora'])) é preg_match_all('/([\d]{1,2}):([\d]{1,2})/', $_POST['ora'], $matches); if(($matches[1][0] >= 0 && $matches[1][0] <= 23) && ($matches[1][0] >= 0 && $matches[1][0] <= 59) { echo "ORA ESATTA!"; } }
Dopodichč verifica che le ore siano comprese tra 0 e 23 e i minuti tra 0 e 59.
Ciao
edit.
Il forum mette la faccina al posto di : (
(qui ci ho messo uno spazio per farti capire, ma non ci deve essere nel codice).
a questo punto non ti conviene fare cosi'
E' un sol come che ti controlla anche che i valore di re e minuti siano corretti.Codice PHP:
$tempo = split( ":" , $_POST['ora'] ) ;
$time = "00:00";
if( count($tempo)==2 )
{
$tempo[0] = floor($tempo[0]);
$tempo[1] = floor($tempo[1]);
// controllo e riformatto ora
$ore = "00";
if( $tempo[0]>0 && $tempo[0]<24 )
$ore = $tempo<10 ? "0".$tempo[0] : $tempo[0];
$minuti ="00";
if( $tempo[1]>0 && $tempo[1]<60 )
$minuti = $tempo[1]<10 ? "0".$tempo[1] : $tempo[1] ;
$time = $ore.":".$minuti;
}