Convertir une date US en français avec PHP

En travaillant avec des SGBD, nous sommes souvent confrontés à des problèmes de dates. En effet , les dates stockées sont au format US (AAAA-MM-JJ). Pour afficher une date en français, c’est à dire au format JJ-MM-AAAA, il est nécessaire de faire une conversion. Il est possible de convertir très…

Partager :

En travaillant avec des SGBD, nous sommes souvent confrontés à des problèmes de dates. En effet , les dates stockées sont au format US (AAAA-MM-JJ). Pour afficher une date en français, c’est à dire au format JJ-MM-AAAA, il est nécessaire de faire une conversion.
Il est possible de convertir très simplement une date US vers le format FR grâce à la fonction strftime.

Voici un exemple :

<?php
/* Configure le script en français */
setlocale (LC_TIME, 'fr_FR','fra');
//Définit le décalage horaire par défaut de toutes les fonctions date/heure  
date_default_timezone_set("Europe/Paris");
//Definit l'encodage interne
mb_internal_encoding("UTF-8");
//Convertir une date US en françcais
function dateFr($date){
return strftime('%d-%m-%Y',strtotime($date));
}

echo dateFr('2010-02-25'); //Affiche 25-02-2010
?>

Un autre exemple avec strftime en affichant cette fois-ci une date complète avec le jour de la semaine :

<?php
/* Configure le script en français */
setlocale (LC_TIME, 'fr_FR','fra');
//Définit le décalage horaire par défaut de toutes les fonctions date/heure  
date_default_timezone_set("Europe/Paris");
//Definit l'encodage interne
mb_internal_encoding("UTF-8");

//Convertir une date US vers une date en français affichant le jour de la semaine
function dateLongue($date,$heure = 'yes'){
    if($heure == 'yes')
    {
    $strDate = mb_convert_encoding('%A %d %B %Y à %Hh%M','ISO-8859-9','UTF-8');  
    }
    else
    {
    $strDate = mb_convert_encoding('%A %d %B %Y','ISO-8859-9','UTF-8');    
    }
    return iconv("ISO-8859-9","UTF-8",strftime($strDate ,strtotime($date))); 
}

$date1 = '2010-01-05 10:11:54';
echo dateLongue($date1); //Affiche mardi 05 janvier 2010 10h11 
$date2 = '2010-01-05';
echo dateLongue($date2,'no'); //Affiche mardi 05 janvier 2010
?>

 

Partager :

Avez-vous trouvé cet article utile ?
Article utile ?
ℹ️ À savoir Ce formulaire est privé et ne permet pas de réponse.
Pour poser une question ou laisser un commentaire public, utilisez la zone de commentaires plus bas sur la page.

Logo LeCoinDuNet
💻 Besoin d’une aide informatique ?

Je propose une assistance informatique à distance pour vous aider à dépanner votre PC ou vos logiciels.
Service 100 % Lecoindunet.com

Une idée d’article ou un sujet à proposer ? 👉 Soumettre un article ou une idée

3 commentaires

  1. Bonjour,
    Ce script fonctionne mais je voudrais savoir comment rajouter :-si c’est aujourd’hui : lui dire d’écrire « Aujourd’hui » à la place de la date-si c’est hier : lui dire d’écrire « Hier » à la place de la date-sinon afficher la date comme elle l’est affichée actuellement
    Merci d’avanceCordialement

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *