2010-02-08 3 views
10

J'utilise une base de données MySQL avec PHP. Je stocke mes valeurs de date dans la base de données en utilisant le champ DATETIME. J'utilise ce code PHP pour convertir les dates saisies au format approprié pour MySQL.Empêcher PHP date() de par défaut à 31/12/1969

date("Y-m-d H:i:s", strtotime($inputDate)) 

Cependant, chaque fois qu'une date est invalide, il est placé dans la base de données 1969-12-31 19:00:00

est-il un moyen de défaut à ce 0000-00-00 00:00:00?

Répondre

1

strtotime retourne faux date à laquelle evals 0. Avant que vous devriez vérifier que strtotime ne retourne pas faux pour empêcher que:

$ts = strtotime($inputDate); 

if ($ts === false) 
{ 
//invalid date 
} 
else 
{ 
echo date("Y-m-d H:i:s", $ts); 
} 
15

Juste détecter la validité avec la sortie de strtotime() qui returns false on failure.

Quelque chose comme:

$time = strtotime($inputDate); 
$date = ($time === false) ? '0000-00-00 00:00:00' : date('Y-m-d H:i:s', $time); 
Questions connexes