begin process at 2008 05 17 02:40:49
1 173 899 membres
32 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRANSFORMER UNE DATE FORMAT ANGLOPHONE( AAAA-MM-JJ) EN FORMAT FRANÇAIS (JJ/MM/AAAA) ET INVERSEMENT !


Information sur la source

Catégorie :Date / Heure Classé sous : change, date, format, français, anglophone Niveau : Initié Date de création : 16/04/2007 Date de mise à jour : 22/05/2007 21:29:30 Vu / téléchargé: 9 251 / 277

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


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

  • <?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;
  • ?>
<?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.

++
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

16 avril 2007 18:34:39 :
Petite modification pour la mise en page ;)
22 mai 2007 21:26:26 :
Prise en compte des commentaires ;)
22 mai 2007 21:28:09 :
Mise en page du code
22 mai 2007 21:29:30 :
Mise en page du code
  • signaler à un administrateur
    Commentaire de ImmortalPC le 17/04/2007 22:25:58

    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');
    ?>

    @+

  • signaler à un administrateur
    Commentaire de Gally le 18/04/2007 02:07:50

    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

  • signaler à un administrateur
    Commentaire de ImmortalPC le 19/04/2007 10:50:09

    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);

    @+

  • signaler à un administrateur
    Commentaire de cedriclomb le 22/04/2007 15:48:14

    Bonjour,

    Et pourquoi pas strtotime() http://fr3.php.net/strtotime ?

  • signaler à un administrateur
    Commentaire de vincseize le 01/05/2007 17:00:06

    Merci, simple et toujours pratique ...

    ;)

Ajouter un commentaire

Discussions en rapport avec ce code source

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS