128 votes

PHP convertir le format de date jj/mm/aaaa => aaaa-mm-jj

J'essaie de convertir une date de dd/mm/yyyy => yyyy-mm-dd. J'ai utilisé la fonction mktime() et d'autres fonctions, mais je ne peux pas le faire fonctionner. J'ai réussi à explode la date d'origine en utilisant '/' comme délimiteur, mais je n'ai pas réussi à changer le format et à échanger le '/' avec un '-'.

Toute aide sera grandement appréciée.

130voto

Baba Points 49157

Essayez d'utiliser DateTime::createFromFormat

$date = DateTime::createFromFormat('d/m/Y', "24/04/2012");
echo $date->format('Y-m-d');

Sortie

2012-04-24

MODIFIER :

Si la date est 5/4/2010 (à la fois J/M/AAAA ou JJ/MM/AAAA), cette méthode ci-dessous est utilisée pour convertir le format 5/4/2010 en 2010-4-5 (à la fois AAAA-MM-JJ ou AAAA-M-J).

$old_date = explode('/', '5/4/2010'); 
$new_data = $old_date[2].'-'.$old_date[1].'-'.$old_date[0];

SORTIE :

2010-4-5

42voto

tosin Points 585

Voici une autre solution qui n'utilise pas date(). pas si intelligente :)

$var = '20/04/2012';
echo implode("-", array_reverse(explode("/", $var)));

7voto

honyovk Points 1398

Faites ceci :

date('Y-m-d', strtotime('dd/mm/yyyy'));

Mais assurez-vous que « jj/mm/aaaa » est la date réelle.

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