525 votes

Convertir le format de date aaaa-mm-jj => jj-mm-aaaa

Je suis en train de convertir une date aaaa-mm-jj jj-mm-aaaa (mais pas dans SQL); cependant, je ne sais pas comment la date fonction nécessite un timestamp, et je ne peux pas obtenir un timestamp à partir de cette chaîne.

Comment est-ce possible?

1152voto

richsage Points 12266

Utiliser strtotime() et date():

$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));

(voir la fonction strtotime et date de docs sur le PHP du site).

302voto

ceiroa Points 1426

Si vous voulez éviter strtotime (si par exemple la fonction strtotime n'est pas en mesure d'analyser votre entrée), vous pouvez utiliser

$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');

ou, de manière équivalente:

$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y'));

Vous êtes le premier de lui donner le format $dateString est dans. Puis vous indiquez le format que vous voulez $newDateString.

Ou si la source, le format est toujours "Y-m-d" (aaaa-mm-jj), alors il suffit d'utiliser DateTime:

<?php
$source = '2012-07-31';
$date = new DateTime($source);
echo $date->format('d.m.Y'); // 31.07.2012
echo $date->format('d-m-Y'); // 31-07-2012
?>

75voto

Tim Lytle Points 10699
implode('-', array_reverse(explode('-', $date)));

Sans date de conversion de la surcharge, pas sûr que ça va avoir beaucoup d'importance.

39voto

Alper Sarı Points 131
$newDate = preg_replace("/(\d+)\D+(\d+)\D+(\d+)/","$3-$2-$1",$originalDate);

Ce code fonctionne pour tous les format de date.

Vous pouvez modifier l'ordre de remplacement des variables $3-$1-$2 en raison de votre ancien format de la date.

30voto

Kevin Points 8488
$timestamp = strtotime(your date variable); 
$new_date = date('d-m-Y', $timestamp);

Pour plus d':

http://php.net/manual/en/function.strtotime.php

Ou encore plus court:

$new_date = date('d-m-Y', strtotime(your date variable));

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