A voir également:
- Php date francais
- Php date en français - Meilleures réponses
- Php date format french - Meilleures réponses
- PHP comment mettre la date en Français ? ✓ - Forum - PHP
- Fonction date en Français ✓ - Forum - PHP
- PHP date en francais et pas en anglais ! ✓ - Forum - PHP
- PHP date au format YYYY-MM-DD ✓ - Forum - PHP
- Code PHP pour afficher le mois en cours en Français ✓ - Forum - PHP
17 réponses
marlwin
Si vous utilisez de l'UTF-8
<? setlocale (LC_TIME, 'fr_FR.utf8','fra'); echo (strftime("%A %d %B")); ?>
Afficher les 21 commentaires
Signaler
Francis228
Merci marlwin
Signaler
John
Merci :-)
Signaler
TheWasakill
Super, merci
Signaler
Gajuland
Thank
Signaler
jerem
top ! merci
kincus
- Messages postés
- 8
- Date d'inscription
- jeudi 14 mars 2013
- Statut
- Membre
- Dernière intervention
- 14 mars 2013
Soit on utilise la fonction date() avec des str_replace pour mettre les mois et les jours en français (méthode artisanale), soit on utilise la fonction strftime qui gère l'internationalisation (multilangue),
jyve
Bon, je vais pas faire le vache, vous avez surement entendu parler des tableaux ?
non?
bon,
<?php
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$datefr = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
echo "Nous sommes le ". $datefr;
?>
Ce script est réutilisable pour la plupart des langues, vous changez juste les contenus des arrays pour avoir la date dans la langue voulue, cependant, vous devrez faire la traduction manuellement.
Par exemple, si vous voulez mettre tout le script en Espagnol; voici comment procéder :
<?php
$jour= array ("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
Et ainsi de suite ...
pareil pour le tableau des mois
$dateesep = $jour[date("w")]."".".date("d")."".$mois[date("n")."".date("Y");
echo "La fecha de hoy es ".$dateesp;
?>
Je ne vais pas vous faire un cours de langue, il faut juste éviter d'etre feignant la premiere fois lors de la traduction (au passage, vous avez des sites de traduction en ligne qui peuvent s'en charger pour vous).
Bonne année à tous, et n'oubliez pas de feuilleter vos books ou cours régulierement, car les langages de prog ne sont pas statiques, eux !
non?
bon,
<?php
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$datefr = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
echo "Nous sommes le ". $datefr;
?>
Ce script est réutilisable pour la plupart des langues, vous changez juste les contenus des arrays pour avoir la date dans la langue voulue, cependant, vous devrez faire la traduction manuellement.
Par exemple, si vous voulez mettre tout le script en Espagnol; voici comment procéder :
<?php
$jour= array ("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
Et ainsi de suite ...
pareil pour le tableau des mois
$dateesep = $jour[date("w")]."".".date("d")."".$mois[date("n")."".date("Y");
echo "La fecha de hoy es ".$dateesp;
?>
Je ne vais pas vous faire un cours de langue, il faut juste éviter d'etre feignant la premiere fois lors de la traduction (au passage, vous avez des sites de traduction en ligne qui peuvent s'en charger pour vous).
Bonne année à tous, et n'oubliez pas de feuilleter vos books ou cours régulierement, car les langages de prog ne sont pas statiques, eux !
milan
En reprenant et généralisant :
<?php
function datefr($arg){
$NomDuJour = array ("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$NomDuMois = array ("janvier", "f?vrier", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
$lejour = date("d",$arg);
$lemois = date("m",$arg);
$ladatefr=$NomDuJour[ date('w',$arg) ]." ";
if($lejour==01){$ladatefr.=" 1er "; }
else if($lejour<10){$ladatefr.=" $lejour[1] "; }
else { $ladatefr.=date (" d ",$arg); }
$ladatefr.=$NomDuMois[ date($lemois - 1) ]." ".date('Y - H:i');
return $ladatefr;
}
//-exemple :
echo "Nous sommes le ". datefr(mktime());
$hier=mktime()-3600*24;
echo "<p>hier nous étions le ".datefr($hier);
//--pour le premier du mois
$lepremiermars2012=mktime(0, 0, 0, 3, 1, 2012);
echo "<p>le 1/03/2012 donne ".datefr($lepremiermars2012);
?>
<?php
function datefr($arg){
$NomDuJour = array ("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$NomDuMois = array ("janvier", "f?vrier", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");
$lejour = date("d",$arg);
$lemois = date("m",$arg);
$ladatefr=$NomDuJour[ date('w',$arg) ]." ";
if($lejour==01){$ladatefr.=" 1er "; }
else if($lejour<10){$ladatefr.=" $lejour[1] "; }
else { $ladatefr.=date (" d ",$arg); }
$ladatefr.=$NomDuMois[ date($lemois - 1) ]." ".date('Y - H:i');
return $ladatefr;
}
//-exemple :
echo "Nous sommes le ". datefr(mktime());
$hier=mktime()-3600*24;
echo "<p>hier nous étions le ".datefr($hier);
//--pour le premier du mois
$lepremiermars2012=mktime(0, 0, 0, 3, 1, 2012);
echo "<p>le 1/03/2012 donne ".datefr($lepremiermars2012);
?>
zup44
Bonjour,
J'utilise votre méthode sauf que je veux afficher la date en chinois !!! sauf que quand je traduit en chinois les jour ou les mois, il affiche des ???, il doit pas reconnaître le chinois surement un problème d'encodage de la page ??? pouvez vous me dire comment faire ??? Je vous remercie d'avance.
J'utilise votre méthode sauf que je veux afficher la date en chinois !!! sauf que quand je traduit en chinois les jour ou les mois, il affiche des ???, il doit pas reconnaître le chinois surement un problème d'encodage de la page ??? pouvez vous me dire comment faire ??? Je vous remercie d'avance.
ced
rien de plus simple :
<? setlocale(LC_TIME, 'fr','fr_FR','fr_FR@euro','fr_FR.utf8','fr-FR','fra'); print strftime("%A %d %B %Y %T"); ?>
karl
setlocale (LC_TIME, 'fr_FR'); $dateFormat = "2010-04-20"; $date = strftime("%A %d %B %Y",strtotime("$dateFormat"));
output : mardi 20 avril 2010
BadVador
Plus complet :
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
</head>
<body>
<p>Nous sommes le
<?php
setlocale (LC_TIME, 'fr_FR','fra');
echo strftime("%A %d %B %Y %T %H:%M:%S");
?>
</p>
</body>
</html>
Ce qui donne le résultat :
Nous sommes le vendredi 18 janvier 2008 14:23:56
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
</head>
<body>
<p>Nous sommes le
<?php
setlocale (LC_TIME, 'fr_FR','fra');
echo strftime("%A %d %B %Y %T %H:%M:%S");
?>
</p>
</body>
</html>
Ce qui donne le résultat :
Nous sommes le vendredi 18 janvier 2008 14:23:56
Olivier
Merci, c'est exactement la fonction que je recherchais. Par contre, si j'ai bien une majuscule pour le jour en local, tout est en minuscule une fois sur le serveur... Y-a-t-il un moyen de forcer l'affichage en majuscule pour les jours (Lundi, Mardi...) sans être obligé de passer par le CSS ?
Si je pouvais éviter de passer par un "text-transform : capitalize" pour si peu...
Si je pouvais éviter de passer par un "text-transform : capitalize" pour si peu...
Utilisateur anonyme
Pauvre écrivain public que je suis, j'aurais des scrupules à donner des conseils en informatique... Mais je peux dire que les noms de mois et de jours ne prennent pas de majuscule (sauf exception comme "14 Juillet" pour désigner la fête nationale).
Je viens d'ailleurs de modifier le script de Jyve, précisément pour supprimer les majuscules dans la phrase "Nous sommes le..."
En tous cas, merci à tous !
Je viens d'ailleurs de modifier le script de Jyve, précisément pour supprimer les majuscules dans la phrase "Nous sommes le..."
En tous cas, merci à tous !
marlwin
Et pour savoir quelle est la bonne chaîne à rentrer :
Par exemple ma chaîne retournée est "fr_FR.utf8". Donc le code correct va être.
Tout dépend du serveur.
<? $mon_local=setlocale (LC_TIME, 'fr_FR.utf8','fra'); echo $mon_local; ?>
Par exemple ma chaîne retournée est "fr_FR.utf8". Donc le code correct va être.
<? setlocale (LC_TIME, 'fr_FR.utf8'); ?>
Tout dépend du serveur.
jyve
Bon, Pour ced, Electrik, nip,Zartenberg,
Désolé mais vos codes sont faux !!!
Depuis la version 5.2 de php, beaucoup de fonctions sont devenues obsolètes.
Je vous conseille donc de remettre le nez dans vos books.
++
Désolé mais vos codes sont faux !!!
Depuis la version 5.2 de php, beaucoup de fonctions sont devenues obsolètes.
Je vous conseille donc de remettre le nez dans vos books.
++
Sha
Voice un code tres simple qui permet de convertir une date SQL end ate francaise.
le $row est une request de la colone date on sql, vous pouvez la remplaced avec time(); ou au format AAAA-MM-JJ
le $row est une request de la colone date on sql, vous pouvez la remplaced avec time(); ou au format AAAA-MM-JJ
<? $sqldate = $row['date]; (preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $sqldate, $regs)); $jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); $mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"); $datefr = $jour[date("w",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1]))]; $datefr .= " ".date("d",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1])); $datefr .= " ".$mois[date("n",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1]))]; $datefr .= " ".date("Y",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1])); echo $datefr; ?>
Krystouf
Salut, j'aurais voulu savoir comment faire s'il on voulait rajouter à la suite l'heure à laquelle a ete posté le message. J'ai essayé
$datefr .= " à ".date("H:i:s",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1]));
Mais cela m'afficher 00:00:00 je ne sais pas quoi mettre à la place des 0,0,0, $regs[.....
$datefr .= " à ".date("H:i:s",mktime(0, 0, 0, $regs[2], $regs[3], $regs[1]));
Mais cela m'afficher 00:00:00 je ne sais pas quoi mettre à la place des 0,0,0, $regs[.....
nip
La locale "fr" simple ne semble pas installée. Il faut utiliser "fr_FR" :
setlocale(LC_ALL, "fr_FR");
-----
Vive le carillon !
http://carillon.avenue-du.net
setlocale(LC_ALL, "fr_FR");
-----
Vive le carillon !
http://carillon.avenue-du.net
ZarTenBerg
- Messages postés
- 85
- Date d'inscription
- jeudi 1 mars 2007
- Statut
- Membre
- Dernière intervention
- 3 juin 2012
Je viens d'ssayer ce code j'ai cette erreur là :
Fatal error: Cannot redeclare date_fr() (previously declared in c:\program files\easyphp1-8\www\zarimmo\index.php:106) in c:\program files\easyphp1-8\www\zarimmo\index.php on line 106
voici le code :
Fatal error: Cannot redeclare date_fr() (previously declared in c:\program files\easyphp1-8\www\zarimmo\index.php:106) in c:\program files\easyphp1-8\www\zarimmo\index.php on line 106
voici le code :
/*Affichage de la date*/ $jour["Monday"] = "Lundi"; $jour["Tuesday"] = "Mardi"; $jour["Wednesday"] = "Mercredi"; $jour["Thursday"] = "Jeudi"; $jour["Friday"] = "Vendredi"; $jour["Saturday"] = "Samedi"; $jour["Sunday"] = "Dimanche"; function date_fr($date) { $date=str_replace ("Monday","Lundi",$date); $date=str_replace ("Tuesday","Lundi",$date); $date=str_replace ("Wednesday","Lundi",$date); $date=str_replace ("Thursday","Lundi",$date); $date=str_replace ("Friday","Lundi",$date); $date=str_replace ("Saturday","Lundi",$date); $date=str_replace ("Sunday","Lundi",$date); $date=str_replace("January","Janvier",$date); $date=str_replace("February","Février",$date); $date=str_replace("March","Mars",$date); $date=str_replace("April","Avril",$date); $date=str_replace("May","Mai",$date); $date=str_replace("June","Juin",$date); $date=str_replace("July","Juillet",$date); $date=str_replace("August","Août",$date); $date=str_replace("September","Septembre",$date); $date=str_replace("October","Octobre",$date); $date=str_replace("November","Novembre",$date); $date=str_replace("December","Décembre",$date); //... et ainsi de suite pour tout les jours et mois return ($date); } setlocale (LC_ALL, 'fr_FR'); $date=strftime ("%A %d %B",time ()); echo date_fr($date); //utilisation de la fonction
Electric inf0rmatik
Salut, un moyen plus simple :
Résultat : http://dimeftp.free.fr/PHP/date.php ;)
<?php // TEMPS $temps = time(); // JOURS $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'); $jours_numero = date('w', $temps); $jours_complet = $jours[$jours_numero]; // Numero du jour $NumeroDuJour = date('d', $temps); // MOIS $mois = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'); $mois_numero = date("m", $temps); $mois_complet = $mois[$mois_numero]; // ANNEE $annee = date("Y", $temps); // Affichage DATE echo "<p>Date : Nous sommes le <strong>$jours_complet $NumeroDuJour $mois_complet $annee</strong></p>"; ?>
Résultat : http://dimeftp.free.fr/PHP/date.php ;)
DanielB
Salut,
je me prenais la tete depuis un bon bout de temps pour sortir une date sql aaaa-mm-jj en francais.
J'ai transforme ton code en fonction (pas de quoi etre fier, mais je ne l'ai pas trouve sous cette forme sur le web)
function f_date($sqldate)
{
// TEMPS
// $temps = time();
$temps=strtotime($sqldate);
// JOURS
$jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$jours_numero = date('w', $temps);
$jours_complet = $jours[$jours_numero];
// Numero du jour
$NumeroDuJour = date('d', $temps);
// MOIS
$mois = array(' ', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai',
'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$mois_numero = date("n", $temps);
$mois_complet = $mois[$mois_numero];
$an = date('Y', $temps);
$fr_temps="$jours_complet $NumeroDuJour $mois_complet $an";
return "$fr_temps";
}
je me prenais la tete depuis un bon bout de temps pour sortir une date sql aaaa-mm-jj en francais.
J'ai transforme ton code en fonction (pas de quoi etre fier, mais je ne l'ai pas trouve sous cette forme sur le web)
function f_date($sqldate)
{
// TEMPS
// $temps = time();
$temps=strtotime($sqldate);
// JOURS
$jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$jours_numero = date('w', $temps);
$jours_complet = $jours[$jours_numero];
// Numero du jour
$NumeroDuJour = date('d', $temps);
// MOIS
$mois = array(' ', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai',
'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
$mois_numero = date("n", $temps);
$mois_complet = $mois[$mois_numero];
$an = date('Y', $temps);
$fr_temps="$jours_complet $NumeroDuJour $mois_complet $an";
return "$fr_temps";
}
Date
Plein d"infos intéressantes sur le site suivant :
http://www.info-3000.com/phpmysql/date.php
Je vous copie-colle la fonction suivante qui permet de traduire les dates des bdd en français
<?php
function DateConviviale($QuelleDate)
{
$NomJour = date("D", strtotime($QuelleDate));
$Jour = date("j", strtotime($QuelleDate));
$NomMois = date("M", strtotime($QuelleDate));
$Annee = date("Y", strtotime($QuelleDate));
// Nom du jour en toutes lettres :
switch ($NomJour)
{
case "Mon": $NomJour = "Lundi"; break;
case "Tue": $NomJour = "Mardi"; break;
case "Wed": $NomJour = "Mercredi"; break;
case "Thu": $NomJour = "Jeudi"; break;
case "Fri": $NomJour = "Vendredi"; break;
case "Sat": $NomJour = "Samedi"; break;
case "Sun": $NomJour = "Dimanche"; break;
}
// Nom du mois en toutes lettres :
switch ($NomMois)
{
case "Jan": $NomMois = "Janvier"; break;
case "Feb": $NomMois = "Février"; break;
case "Mar": $NomMois = "Mars"; break;
case "Apr": $NomMois = "Avril"; break;
case "May": $NomMois = "Mai"; break;
case "Jun": $NomMois = "Juin"; break;
case "Jul": $NomMois = "Juillet"; break;
case "Aug": $NomMois = "Août"; break;
case "Sep": $NomMois = "Septembre"; break;
case "Oct": $NomMois = "Octobre"; break;
case "Nov": $NomMois = "Novembre"; break;
case "Dec": $NomMois = "Décembre"; break;
}
return $NomJour." ".$Jour." ".$NomMois." ".$Annee;
}
//exemple
$date_test = '2011-11-14';
echo DateConviviale($date_test);
// Lundi 14 novembre 2011
?>
http://www.info-3000.com/phpmysql/date.php
Je vous copie-colle la fonction suivante qui permet de traduire les dates des bdd en français
<?php
function DateConviviale($QuelleDate)
{
$NomJour = date("D", strtotime($QuelleDate));
$Jour = date("j", strtotime($QuelleDate));
$NomMois = date("M", strtotime($QuelleDate));
$Annee = date("Y", strtotime($QuelleDate));
// Nom du jour en toutes lettres :
switch ($NomJour)
{
case "Mon": $NomJour = "Lundi"; break;
case "Tue": $NomJour = "Mardi"; break;
case "Wed": $NomJour = "Mercredi"; break;
case "Thu": $NomJour = "Jeudi"; break;
case "Fri": $NomJour = "Vendredi"; break;
case "Sat": $NomJour = "Samedi"; break;
case "Sun": $NomJour = "Dimanche"; break;
}
// Nom du mois en toutes lettres :
switch ($NomMois)
{
case "Jan": $NomMois = "Janvier"; break;
case "Feb": $NomMois = "Février"; break;
case "Mar": $NomMois = "Mars"; break;
case "Apr": $NomMois = "Avril"; break;
case "May": $NomMois = "Mai"; break;
case "Jun": $NomMois = "Juin"; break;
case "Jul": $NomMois = "Juillet"; break;
case "Aug": $NomMois = "Août"; break;
case "Sep": $NomMois = "Septembre"; break;
case "Oct": $NomMois = "Octobre"; break;
case "Nov": $NomMois = "Novembre"; break;
case "Dec": $NomMois = "Décembre"; break;
}
return $NomJour." ".$Jour." ".$NomMois." ".$Annee;
}
//exemple
$date_test = '2011-11-14';
echo DateConviviale($date_test);
// Lundi 14 novembre 2011
?>
yolenoyer
Bonjour,
ça ne marche pas chez moi, est-ce qu'il ne faut pas intaller les locales pour php, un peu comme des modules?
du coup, je crois que je vais passer en mode 'tableau de remplacement', au moins là, c'est sûr que ça fonctionne!
ça ne marche pas chez moi, est-ce qu'il ne faut pas intaller les locales pour php, un peu comme des modules?
du coup, je crois que je vais passer en mode 'tableau de remplacement', au moins là, c'est sûr que ça fonctionne!
flipody
Salut,
Effectivement, ca ne marche pas mais apparement l'erreur est assez courante. Si tu veux traduir la date en francais, par contre rien de plus simple :
<?
function date_fr($date)
{
$date=str_replace ("Monday","Lundi",$date);
//... et ainsi de suite pour tout les jours et mois
return ($date);
}
setlocale (LC_ALL, 'fr_FR');
$date=strftime ("%A %d %B",time ());
echo date_fr($date); //utilisation de la fonction
?>
@+
Effectivement, ca ne marche pas mais apparement l'erreur est assez courante. Si tu veux traduir la date en francais, par contre rien de plus simple :
<?
function date_fr($date)
{
$date=str_replace ("Monday","Lundi",$date);
//... et ainsi de suite pour tout les jours et mois
return ($date);
}
setlocale (LC_ALL, 'fr_FR');
$date=strftime ("%A %d %B",time ());
echo date_fr($date); //utilisation de la fonction
?>
@+