2008-10-29 7 views
2
$doba = explode("/", $dob); 

$date = date("Y-m-d", mktime(0,0,0, $doba[0], $doba[1], $doba[2])); 

Le code ci-dessus transforme n'importe quelle date que je traverse en 1999-11-30 et je sais que cela fonctionnait hier. La date est correcte quand j'écho $ doba. Quelqu'un a des idées?PHP mange mes dates

Vive

+0

Vous devez nous montrer les valeurs que vous passez en $ dob pour que nous donnions une réponse définitive. – davr

Répondre

3

Quel est le format de $doba? Rappelez-vous la syntaxe mktime va heure, minute, seconde, mois, jour année qui peut être source de confusion.

Voici quelques exemples:

$doba = explode('/', '1991/08/03'); 
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[2], $doba[0]); 

$doba = explode('/', '03/08/1991'); 
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[0], $doba[2]); 
2

Il est un peu exagéré d'utiliser mktime dans ce cas. En supposant que $dob est dans le format suivant:

MM/DD/YYYY

vous pourriez juste ce qui suit pour acheive le même résultat (en supposant $dob est toujours valide):

$doba = explode("/", $dob); 
$date = vsprintf('%3$04d-%1$02d-%2$02d', $doba); 
3

ou encore plus facile : $date = date('Y-m-d', strtotime($dob))

0

Si vous avez des problèmes avec ce que jcoby dit ci-dessus, t La commande strptime() vous donne plus de contrôle en vous permettant de spécifier le format.