Petite fonction php permettant d'afficher la date et l'heure en français (destinée aux débutants en php)

Présentation
Cette petite fonction permet d'afficher une date en français.

Elle doit recevoir, en paramètre, un timestamp et retourner la date ainsi que l'heure correspondantes (exemple: Le 27 Décembre 2012).

Cette petite fonction ne vient pas remplacer les puissantes fonctions php conçues pour la même fonctionnalité, mais elle présente l'avantage d'être customizable à volonté.
Détails
Catégories : Codes sources PHP Dates
Avatar de gentil2005
Membre éprouvé
Voir tous les téléchargements de l'auteur
Licence : GPL
Date de mise en ligne : 8 octobre 2013




Avatar de grunk grunk - Modérateur https://www.developpez.com
le 07/10/2013 à 9:28
Ta fonction est erronée l'as tu testée ?
Pour aujourd'hui elle me retourne 7 janvier 2013 ...

Au delà de ça elle excessivement compliquée et l'utilisation des variables est maladroite.

Une alternative correcte pourrait être :

Code : Sélectionner tout
1
2
3
4
5
6
function dateFr($timestamp) 
{ 
        $moisFr = array(1=>'Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Décembre'); 
        $mois = intval(date('m',$timestamp)); 
	return date('\L\e d ',$timestamp).' '.$moisFr[$mois].' '.date('Y \à H:i:s',$timestamp); 
}
Avatar de demenvil demenvil - Membre averti https://www.developpez.com
le 07/10/2013 à 16:37
Une autre alternative aussi :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  
<?php 
function Prendre_nom_jour($jour_actuel) { 
        $numero_jour = date('N', $jour_actuel); 
        $numero_mois = date('n', $jour_actuel); 
        $numero_jour_mois = date('d', $jour_actuel); 
        $mois = array( 
            1 => 'Janvier', 
            2 => 'Fevrier', 
            3 => 'Mars', 
            4 => 'Avril', 
            5 => 'Mai', 
            6 => 'Juin', 
            7 => 'Juillet', 
            8 => 'Août', 
            9 => 'Septembre', 
            10 => 'Octobre', 
            11 => 'Novembre', 
            12 => 'Decembre' 
        ); 
        $jour_fr = array( 
            1 => 'Lundi', 
            2 => 'Mardi', 
            3 => 'Mercredi', 
            4 => 'Jeudi', 
            5 => 'Vendredi', 
            6 => 'Samedi', 
            7 => 'Dimanche' 
        ); 
        $retour = $jour_fr[$numero_jour] . ' ' . $numero_jour_mois . ' ' . $mois[$numero_mois]; 
        return $retour; 
    }
Avatar de grunk grunk - Modérateur https://www.developpez.com
le 07/10/2013 à 16:54
Ou en plus simple :

Code : Sélectionner tout
1
2
setlocale(LC_TIME,"fr_FR.UTF-8","French_France.1252"); 
echo strftime("%A %d %B %Y");
Il faut bien entendu que la locale choisi soit disponible sur le système.
Avatar de demenvil demenvil - Membre averti https://www.developpez.com
le 07/10/2013 à 17:04
Effectivement
Je n'avais pas connaissance de cette méthode, c'est pas mal !
Avatar de papajoker papajoker - Membre émérite https://www.developpez.com
le 07/10/2013 à 17:24
Bonjour,
pour les dates, j'utilise du lourd (dans tous les sens du terme)

le package Carbon

https://github.com/briannesbitt/Carbon

Code : Sélectionner tout
1
2
setlocale(LC_TIME, 'French');     
echo $dt->formatLocalized('%A %d %B %Y');
Avatar de demenvil demenvil - Membre averti https://www.developpez.com
le 07/10/2013 à 17:51
Peut être même un peu trop lourd là non ?
Avatar de gentil2005 gentil2005 - Membre éprouvé https://www.developpez.com
le 08/10/2013 à 15:46
Bonjour à tous et merci pour vos critiques!!!

J'ai apporté une petite modification sur la fonction. Pour les autres solutions, elles sont aussi bonnes, ça pourra aider ceux qui en auront besoin et qui passeront pas là.

Merci
Avatar de gentil2005 gentil2005 - Membre éprouvé https://www.developpez.com
le 08/10/2013 à 15:50
Citation Envoyé par grunk  Voir le message

Au delà de ça elle excessivement compliquée et l'utilisation des variables est maladroite.

Excessivement compliquée? je ne vois pas. Que veux-tu dire par "utilisation des variables maladroite"? On peut emprunter 1000 chemins différents pour arriver à la même solution.
Avatar de rawsrc rawsrc - Modérateur https://www.developpez.com
le 08/10/2013 à 16:03
Effectivement tous les chemins mènent à Rome, mais l'idée principale reste toujours la même : utiliser au mieux ce qui est déjà présent nativement dans le langage.

Si à chaque fois, tu fais ta cuisine interne alors que c'est déjà géré nativement, tu perds du temps et de la fiabilité pour au final faire moins bien.

Le support natif doit toujours primer sur tout le reste, c'est pour ça qu'il faut un peu potasser le langage ou faire quelques recherches afin d'éviter la voie de garage.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique PHP