actually this would work well ... compare what they send with the output of the formatdate function checkDateTime($data) { if (date('Y-m-d H:i:s', strtotime($data)) == $data) { return true; } else { return false; } } 2012/3/29 David OBrien <dgobrien@xxxxxxxxx> > http://www.php.net/manual/en/function.checkdate.php > > > 2012/3/29 Martín Marqués <martin.marques@xxxxxxxxx> > >> OK. So what would be a good way to validate a date? >> >> El día 29 de marzo de 2012 14:04, David OBrien <dgobrien@xxxxxxxxx> >> escribió: >> > >> > echo date("m-d-y",mktime(0, 0, 0, 14, 14, 2012)); >> > >> > this outputs "02-14-13" also so my guess is that it is being >> interpreted the >> > same as "12/14/2012 +2 months" >> > >> > echo date("m-d-y",mktime(0, 0, 0, 1, 45, 2012)); outputs >> > "02-14-12" >> > >> > which is 1/1/12 +45 days >> > >> > >> > >> > 2012/3/29 Martín Marqués <martin.marques@xxxxxxxxx> >> >> >> >> Can someone explain to me this weierdness I see when using the >> >> DateTime module of PHP. >> >> >> >> Here I send 14/14/2012 which is not a valid date, and I would expect >> >> to recieve false, but instead, it looks like it wrapping to the next >> >> year, as if 14 monthas are 1 year and 2 months. That isn't what's >> >> supposed to happen, or is it? >> >> >> >> $ echo "<?php var_dump(DateTime::createFromFormat('j/n/Y', >> >> '14/14/2012')); ?> "|php >> >> object(DateTime)#1 (3) { >> >> ["date"]=> >> >> string(19) "2013-02-14 13:20:22" >> >> ["timezone_type"]=> >> >> int(3) >> >> ["timezone"]=> >> >> string(20) "America/Buenos_Aires" >> >> } >> >> >> >> >> >> -- >> >> Martín Marqués >> >> select 'martin.marques' || '@' || 'gmail.com' >> >> DBA, Programador, Administrador >> >> >> >> -- >> >> PHP General Mailing List (http://www.php.net/) >> >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >> > >> >> >> >> -- >> Martín Marqués >> select 'martin.marques' || '@' || 'gmail.com' >> DBA, Programador, Administrador >> > >