controllo input di inserimento per data

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, come faccio ad controllare la textbox che la data in questione ha il formato cosi : 13-07-2012 ..
con un

if( controllo data )
{
sbagliata
}else
{
giusta
}

in javascript lo faccio già e uso un regular espressione.

ma in lato server come faccio?.. essendo che il javascript lo possono disabilitare.. e
quindi mi serve anche il controllo lato server ..

avete idea come si fa?

grazie mille.
 
Ci sono svariati modi, ad esempio con una semplice espressione regolare

PHP:
$a = '13-07-2012';

if(preg_match('/[0-9]{2}-[0-9]{2}-[0-9]{4}/',$a))

    echo 'Formato corretto';
else
    echo 'Formato errato';
 
ciao
secondo oltre al formato corretto dovresti anche verificare se la data è corretta
es. 31-02-2012 è fotmalmente valida, ma errata
quindi dovresti passarla a
bool checkdate ( int $month , int $day , int $year )
essendo la tua data scritta in quel modo forse ti conviene dopo il controllo dai nefyt e se questo ha dato true
PHP:
<?php
$ex=explode("-",$a);
if(checkdate($ex[1],$ex[0],$ex[2])){
	echo "data valida"; 
}else{
	echo "data non valida";
}
?>
potresti farti una funzioncina che racchiuda entrambe
 
ok , ho fatto ma non so dove mettere il codice di borgo nel mio:


PHP:
function isData($data){
  return preg_match('/[0-9]{2}-[0-9]{2}-[0-9]{4}/', $data) ? TRUE : FALSE;
}

come faccio ad aggiungere quel codice?

poi checkdate è una funzione di php?

grazie mille e scusate se rispondo ora , ma ero via..

buona giornata.
 
ok , ho fatto ma non so dove mettere il codice di borgo nel mio:


PHP:
function isData($data){
  return preg_match('/[0-9]{2}-[0-9]{2}-[0-9]{4}/', $data) ? TRUE : FALSE;
}

come faccio ad aggiungere quel codice?

poi checkdate è una funzione di php?

grazie mille e scusate se rispondo ora , ma ero via..

buona giornata.

PHP:
function isData($data){ 

  $dd = explode('-',$data);

return (preg_match('/[0-9]{2}-[0-9]{2}-[0-9]{4}/', $data) && checkdate($dd[1],$dd[0],$dd[2])) ? true : false;

}

Checkdate è una funzione della libreria date/time
 
Ultima modifica:
salve, riapro questa discussione perché mi sono accorto che il controllo della data in questo formato:
12-12-20121

la prende come esatta ?

come mai?

grazie mille. e buona giornata.
 
ciao
è sbagliato il pattern della preg
correggi in
PHP:
return (preg_match('/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/', $data) && checkdate($dd[1],$dd[0],$dd[2])) ? true : false;

p.s.
non è perche è la data maya :)
 
ciao
è sbagliato il pattern della preg
correggi in
PHP:
return (preg_match('/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/', $data) && checkdate($dd[1],$dd[0],$dd[2])) ? true : false;

p.s.
non è perche è la data maya :)

Ti ringrazio molto .. per la correzione..

Stavo testando lo script e per sbaglio ho messo un 1. per provare se dava corretta la data.e mi sono accorto di questo sbaglio.

grazie e buona serata e il controllo ora funziona perfettamente.
 

Discussioni simili