Publié le 11/12/2014
Auteur James
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Afficher une date en francais

Gérer une date en PHP relève parfois du défi, les formats différents selon les pays, additionner ou soustraire des jours, voici quelques unes des taches à effectuer dans nos scripts.

Qu'est ce qu'une date

Les dates sont utilisées dans tous les pays avec les langues différentes et parfois un format spécifique. Il a fallu trouver une unité commune pour qu'une date soit la même dans les différentes régions du monde: le timestamp.
En PHP, la valeur en cours est obtenu ainsi:
<?php
//Affiche le timestamp actuel
echo date("U");
?>

A quoi correspond ce long numéro ?
Le timestamp est le nombre de secondes écoulées depuis le 1er janvier 1970. Cette manière de stocker une date sous forme de nombre seconde présente l'avantage d'être commun dans tous les pays. Par dessus, on y stocke les fuseaux horaires pour pouvoir communiquer une date juste suivant chaque région du monde.

Formater une date dans un langue

Le timestamp sert à stocker une date, par contre ça ne sert à rien de l'afficher dans une page HTML car cette valeur est incompréhensible. Le but de l'article est d'écrire une date dans le format courant, c-a-d jeudi le 11 décembre 2014.

Representation d'une date par constante

Il y a encore peu de temps, il n'existait aucun mécanisme pour afficher une date longue directement à partir de PHP. La fonction date() permet de formater une date par contre la langue française n'est pas supportée. Dans le script ci-dessous, nous allons extraire les données suivantes d'un Timestamp:
- le numéro du jour,
- le numéro du mois
pour ensuite le convertir dans le mot correspondant dans la langue francaise.
<?php
//Tableau de constante des jours
$JOURS=array("", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
//Tableau de constante des mois
$MOIS=array("", "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre");
//timestamp actuel
$timestamp=date("U");
//indice du jour de 1 à 7
$numero_jour=date('N', $timestamp);
$jour=date('j', $timestamp);
//indice du mois de 1 à 12
$numero_mois=date('n', $timestamp);
$annee=date('Y', $timestamp);
//Jeudi, le 11 Decembre 2014
$date_fr=$JOURS[$numero_jour].', le '.$jour.' '.$MOIS[$numero_mois].' '.$annee;
echo $date_fr;
?>

Nous obtenons une belle date écrit en français. Par contre, il faut établir un tableau de constante pour chaque pays.

Afficher une date en fonction d'un fuseau horaire

La plateforme PHP a évolué et aujourd'hui ils existent toutes les fonctions pour afficher une date dans la langue du pays. De plus, elles permettent de respecter le fuseau horaire de chaque région du monde.
<?php
$timestamp=date("U");
/* Définir la configuration */
setlocale (LC_TIME, 'fr_FR','fra');
//fixer le décalage horaire  
date_default_timezone_set("Europe/Paris");
//jeudi, le 11 decembre 2014
$date_fr=strftime('%A, le %d %B %Y' ,$timestamp);
echo $date_fr;
?>
C'est bien plus simple avec strftime(). Pour etre nickel, je vous conseille d'encoder les accents des dates avec mb_convert_encoding() par exemple en UTF-8.


J'espère que l'article vous aidera pour afficher une date en francais et même dans toutes les langues du monde. Avec la fonction strftime(), un timestamp peut facilement être afficher dans n'importe quel format.
Merci à Fobec pour sa relecture.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - script
Mise a jour
11/12/2014
Visualisation
vu 2152 fois
Public
Internaute
Auteur de la publication
James
Membre junior
Auteur de 6 articles
|BIO_PSEUDO|
Commentaires récents

Publié par web agency cms Typo3 dans tuto

De nombreux articles sur le web parlent des CMS (Content Management System) et tentent de lister les meilleurs d'entres-eux.
Mais très souvent, sauf quelques rares libres blancs, ces article...

Publié par xnadyx dans php5

Bonjour,

Est ce qu'il y a un autre moyen d'acces aux donnees Microsoft SQL Server?
Je ne trouve pas de tutoriaux sur Internet.

Merci.

Publié par traitstone dans CMS

c'est bou et tres bon chose

Publié par beeker dans tuto

Le script fonctionne bien en hebergement mutua1isee

Publié par Fobec dans tuto

Je ne maitrise pas du tout WordPress ...
un plugin a l'air sympa http://wordpress.org/extend/plugins/scripts-gzip/, en parcourant le code source, j'ai vu des pistes pour integrer Gzip sous WordPre...