2 votes

PHP modifie mes dates

$doba = explode("/", $dob);

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

Le code ci-dessus transforme toute date que je passe en 1999-11-30 et je sais que cela fonctionnait hier. La date est correcte lorsque je fais écho à $doba. Quelqu'un a-t-il une idée ?

Cheers

3voto

Ross Points 19037

Quel est le format de $doba ? Souvenez-vous de mktime La syntaxe de l'utilisateur est la suivante : heure, minute, seconde, mois, jour année ce qui peut prêter à 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]);

3voto

jcoby Points 2389

Ou même plus facile : $date = date('Y-m-d', strtotime($dob))

2voto

Andrew Moore Points 49765

C'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 simplement faire ce qui suit pour arriver au même résultat (en supposant que $dob est toujours valable) :

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

0voto

Powerlord Points 43989

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X