Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 19/12/2005, 00h56   #1
Membre du Club
 
Inscription: mai 2005
Messages: 109
Par défaut [Dates] Date fr avec jour de la semaine et mois dans une boucle

Bonjour,

Dans une boucle affichant une série de 10 news j'ai entre autre :
$date = $data['date'];
$date correspond vous vous en doutez sans doute à la date extraite de la bdd.

Je voudrais afficher les dates sous la forme "Lundi 19 décembre 2005".
J'ai trouvé ce script qui converti les dates us en dates fr avec jours et mois.

Mais je n'arrive pas à l'intéregrer afin de pouvoir afficher mes dates en français.

Pourriez-vous m'aider svp :- ?
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 01h26   #2
Membre expérimenté
 
Avatar de GregPeck
 
Inscription: novembre 2005
Messages: 534
Avec date et strtotime comme ça:

Code :
echo date("d:m:Y H:i",strtotime($date));
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 01h51   #3
Membre émérite
 
Avatar de Linaa
 
Inscription: avril 2005
Localisation: IdF
Messages: 996
Il faut convertir la date en timestamp en utilisant la fonction strtotime par exemple (Y'a une fonction MySQL qui le fait aussi).

Code :
$timestamp = strtotime($date);
setlocale(LC_TIME, "fr");
echo strftime("%A %d %B %Y", $timestamp);
Linaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 02h48   #4
Membre du Club
 
Avatar de tyarak
 
Inscription: octobre 2005
Localisation: Québec
Messages: 90
http://www.phpdebutant.org/article53.php

va lire ceci et tu sera capable
tyarak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 03h09   #5
Membre du Club
 
Inscription: mai 2005
Messages: 109
Oui mais tout ça va m'afficher la date sous cette forme : le 19 12 2005
Alors que j'aimerais avoir ma date sous cette forme : le lundi 19 décembre 2005.
D'où mon lien vers la fonction magique .
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 04h05   #6
Membre expérimenté
 
Avatar de GregPeck
 
Inscription: novembre 2005
Messages: 534
Est tu sur d'avoir essayer l'exemple de Linaa ?
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 12h14   #7
Membre du Club
 
Inscription: mai 2005
Messages: 109
Citation:
Envoyé par GregPeck
Est tu sur d'avoir essayer l'exemple de Linaa ?
Ca me donne : Le Monday 19 December 2005,
Je préfèrerais en français ^^.
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 12h21   #8
Membre expérimenté
 
Avatar de GregPeck
 
Inscription: novembre 2005
Messages: 534
Dans ce cas, c'est que tu as un problème avec tes locales, parce que c'est le but de faire setlocale(LC_TIME, "fr");
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 13h00   #9
Membre du Club
 
Inscription: mai 2005
Messages: 109
Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

Code :
<?
$date = date("Y-m-d H:i:s");
$timestamp = strtotime($date);
setlocale(LC_TIME, "fr");
echo strftime("%A %d %B %Y", $timestamp);
?>
--> "Monday 19 December 2005" .
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 14h08   #10
Membre émérite
 
Avatar de Linaa
 
Inscription: avril 2005
Localisation: IdF
Messages: 996
Citation:
Envoyé par yazerty
Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

Code :
<?
$date = date("Y-m-d H:i:s");
$timestamp = strtotime($date);
setlocale(LC_TIME, "fr");
echo strftime("%A %d %B %Y", $timestamp);
?>
--> "Monday 19 December 2005" .
Surement, chez mon hébergeur aussi ça le fait!
J'crois que c'est parce qu'on a pas les droits pour le modifier
En tout cas, ça marche en local!

Sinon, en utillisant leur script tu peux faire :

Code :
//--- Les noms des jours en français 
$jour{0} = "dimanche";  
$jour{1} = "lundi";  
$jour{2} = "mardi";  
$jour{3} = "mercredi";  
$jour{4} = "jeudi";  
$jour{5} = "vendredi";  
$jour{6} = "samedi";    
//--- Les noms des mois en français 
$mois{1} = "janvier";  
$mois{2} = "février";  
$mois{3} = "mars";  
$mois{4} = "avril";  
$mois{5} = "mai";  
$mois{6} = "juin";  
$mois{7} = "juillet";  
$mois{8} = "août";  
$mois{9} = "septembre";  
$mois{10} = "octobre";  
$mois{11} = "novembre";  
$mois{12} = "décembre";   
 
$timestamp = strtotime($date);
$d = date("w/j/m/y",$timestamp);
   
$date = explode("/",$d);
$date_fr = $jour{$d[0]}." ".$d[1]." ".$mois{$d[2]}." ".$d[3];
echo $date_fr;
w->jour de la semaine
j->jour du mois
m->mois
y->annee
Linaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 14h32   #11
Membre du Club
 
Inscription: mai 2005
Messages: 109
Dommage pour Ovh, parce que ça aurait effectivement été très pratique !!

Sinon Linaa, ça me donne ça ton code : "lundi / janvier 9"
Mais ça ne risque pas de faire baisser la performance du script le explode() :- ? Je ne sais pas hein, je ne suis pas du tout connaisseur de la chose vous l'aurez compris

En fait mon problème avec la fonction dont j'ai donné le lien c'est que je n'arrive pas à l'intégrer dans ma boucle.
Dans cette boucle je prend le champ date de la news et je l'obtiens donc sous cette forme :
$date = 2005-12-17 14:05:23
Mais après je ne comprends pas comment pouicher la chose avec la fonction sans que ça fasse d'erreur ou de truc incohérants.
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 14h36   #12
Membre émérite
 
Avatar de Linaa
 
Inscription: avril 2005
Localisation: IdF
Messages: 996
Me suis juste trompée entre les $d et $date, voila :

Code :
$date_fr = $jour{$date[0]}." ".$date[1]." ".$mois{$date[2]}." ".$date[3];
Le explode() sert juste à séparer une chaine selon un séparateur, ici le /, et les mettre dans un tableau.

Code :
 
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(2) "19"
  [2]=>
  string(2) "12"
  [3]=>
  string(2) "05"
}
Linaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2005, 15h38   #13
Membre du Club
 
Inscription: mai 2005
Messages: 109
Merciii !

Le résultat est sur La boîte à rêves (encore en (re)développement...)
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2005, 19h20   #14
Membre du Club
 
Inscription: mai 2005
Messages: 109
Citation:
Envoyé par yazerty
Mmm ben je suis sur un pti 60gp OVH. Ca viendrait du serveur ??

Code :
<?
$date = date("Y-m-d H:i:s");
$timestamp = strtotime($date);
setlocale(LC_TIME, "fr");
echo strftime("%A %d %B %Y", $timestamp);
?>
--> "Monday 19 December 2005" .
Mmm en fait voici le code qui marche sur OVH :

Citation:
function date_fr($date){
$timestamp = strtotime($date);
setlocale(LC_TIME,"fr_FR");
echo strftime("%A %d %B %Y à %H:%M", $timestamp);
}
Je préfère donc utiliser ce code, plus rapide et efficace.
Pour les noms des variables du strftime c'est ici dans la doc.
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2005, 19h26   #15
Membre expérimenté
 
Avatar de GregPeck
 
Inscription: novembre 2005
Messages: 534
Les minutes c'est %M.

Tu as la liste ici http://fr.php.net/manual/fr/function.strftime.php
GregPeck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2005, 19h31   #16
Membre du Club
 
Inscription: mai 2005
Messages: 109
Oh, j'ai trouvé entre temps et édité mon post avant de voir ton message, désolé .

Merci quand même !

ps : c'est trompeur le fait que ce ne soit pas les mêmes désignations qu'avec date() quand même.
yazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h20.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.