Transformer une date format anglophone( aaaa-mm-jj) en format français (jj/mm/aaaa) et inversement !

Soyez le premier à donner votre avis sur cette source.

Vue 29 146 fois - Téléchargée 540 fois

Description

Cette fonction permet de transformer une date au format anglophone : aaaa-mm-jj
au format français : jj/mm/aaaa
et inversement !

Utile lorsqu'on stocke des dates dans MySQL au format anglais mais que nous, francophones, nous souhaitons les afficher à notre façon !! lol

Source / Exemple :


<?php

/****************************************************************/
/*      Transforme les formats de date (anglais - français)     */
/****************************************************************/
// $date : la date à transformer
// $format : format de destination voulue :
//      en : pour anglais
//      rien : convertit automatiquement dans le format français
function Change_formatDate($date, $format = 'fr')
{
    $r = '^([0-9]{1,4}).([0-9]{1,2}).([0-9]{1,4})$';
	
    if($format === 'en')
    return ereg_replace($r, '\\3-\\2-\\1', $date);
	
    return ereg_replace($r, '\\3/\\2/\\1', $date);
}

// Petit exemple n°1

$ma_date_fr_1 = '16/04/2007';

$ma_date_en_1 = Change_formatDate($ma_date_fr_1, 'en');

echo $ma_date_en_1;

echo "\n";

// Petit exemple n°2

$ma_date_en_2 = '2007-05-26';

$ma_date_fr_2 = Change_formatDate($ma_date_en_2);

echo $ma_date_fr_2;

?>

Conclusion :


Pratique pour modifier le format d'affichage d'une date.

Moi je m'en sers lorsque je récupère mes dates d'un formulaire au format français (jj/mm/aaaa) et que je souhaite stocker dans MySQL car j'utilise le type DATE dans MySQL qui stocke les dates au format anglophone AAAA-MM-JJ.

Et donc inversement, une date qui est stockée au format anglophone est facilement affichable à notre format français ;)

En espérant que ca puisse vous aider.

++

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

vincseize
Messages postés
114
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
28 mars 2010
-
Merci, simple et toujours pratique ...

;)
cedriclomb
Messages postés
277
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1 -
Bonjour,

Et pourquoi pas strtotime() http://fr3.php.net/strtotime ?
ImmortalPC
Messages postés
955
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2 -
Salut,

J' avais pas pensé aux expréssions régulières ^^

Juste un petit truc, il faudrait faire en sorte que la date soit simplement réversible avec n' importe quel séparateur :

$date = ereg_replace('^([0-9]{1,4}).([0-9]{1,2}).([0-9]{1,4})$','\\3/\\2/\\1', $date);

@+
gallyhc
Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2 -
Bonjour,

Pour la convertion il y a plus simple je penses avec "$date = ereg_replace('^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$','\\3/\\2/\\1', $date);"

Bonne continuation
ImmortalPC
Messages postés
955
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2 -
Salut,

J' aurais fait plus simple :

<?php
// Transforme les formats de date
// $date : la date à transformer
// $p : format de destination (en ou fr)
function Change_formatDate($date, $p)
{
// Le séparateur dans chaque format
$sep_en = '-';
$sep_fr = '/';

if($p === 'en')
return substr($date, 6, 4).$sep_en.substr($date, 3, 2).$sep_en.substr($date, 0, 2);

// Fr
return substr($date, 8, 2).$sep_fr.substr($date, 5, 2).$sep_fr.substr($date, 0, 4);
}

function Change_formatDate2($date, $sep='-', $new_sep='/')
{
if($sep '/' && $new_sep '/'){$new_sep = '-';}

$date = explode($sep, $date);
return implode($new_sep, array_reverse($date));
}
echo Change_formatDate2('2007-04-02');
?>

@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.