Date 2008-01-09 vers Mercredi 9 janvier 2008 ?

Date 2008-01-09 vers Mercredi 9 janvier 2008 ? - PHP - Programmation

Marsh Posté le 09-01-2008 à 22:49:28    

Bonjour,
 
Je cherche a faire une fonction en php qui reccupère une variable mysql au format yyyy-mm-dd vers une date litérale en Français JoursDeLaSemaineEnLettre Jour MoisEnLettre Année.
ex: 2008-01-09 vers Mercredi 9 janvier 2008
 
Mon herbergeur mutualisé refuse setlocale.
 
En fait je bloque surtout pour le jour de la semaine le reste je vois comment faire.
 
Si quelqu'un à une idée.
 
Merci

Reply

Marsh Posté le 09-01-2008 à 22:49:28   

Reply

Marsh Posté le 10-01-2008 à 00:16:31    

google is your friend :o

 

http://www.google.fr/search?hl=fr& [...] cher&meta=

 

et tu trouves ça
http://www.commentcamarche.net/for [...] n-francais


Message édité par bricocoman le 10-01-2008 à 00:17:07
Reply

Marsh Posté le 10-01-2008 à 08:57:01    

La méthode des str_replace sur les jours en anglais je trouve ca un peu bourin comme solution et ca rend la fonction bancale le jour ou je tombe sur un server qui est en set_local autre qu'anglais.
 
Idéalement je cherchais une solution avec un tableau et une fonction qui trouverait le numéro du jour de la semaine d'une date donnée...

Reply

Marsh Posté le 10-01-2008 à 09:19:33    

Code :
  1. $ts = strtotime($date);
  2. $t_jour = array("","lundi","mardi",,"mercredi","jeudi","vendredi","samedi","dimanche" );
  3. $jour = $t_jour[date('N',$ts)];


et puis tu fais pareil avec les mois et date('n');
http://fr.php.net/date


Message édité par flo850 le 10-01-2008 à 09:20:14

---------------

Reply

Marsh Posté le 10-01-2008 à 10:16:07    

Je l'ai fait pour un de mes projets , légerement différemment de flo850 :

Code :
  1. $days = array('Mon' => 'Lundi' , 'Tue' => 'Mardi' , 'Wed' => 'Mercredi' , 'Thu' => 'Jeudi' , 'Fri' => 'Vendredi' , 'Sat' => 'Samedi' , 'Sun' => 'Dimanche' ) ;
  2.  $months = array( 1 => 'Janvier' , 2 => 'Février' , 3 => 'Mars' , 4 => 'Avril' , 5 => 'Mai' , 6 => 'Juin' , 7 => 'Juillet' , 8 => 'Aout' , 9 => 'Septembre' , 10 => 'Octobre' , 11 => 'Novembre' , 12 => 'Décembre' ) ;
  3. $date = $days[date("D" )].' '.intval( date("d" ) ).' '.$months[intval( date("m" ) )].' '.date("Y" ) ;

Reply

Marsh Posté le 10-01-2008 à 10:37:19    

il vaut mieux fonctionner avec les numéro de jour, plutot que els libellé qui peuvent changer suivant le reglage du "locale" sur le serveru


---------------

Reply

Marsh Posté le 10-01-2008 à 10:51:50    

Merci flo ca marche nickel, juste une virgule en trop dans la déclaration du tableau :p

Reply

Marsh Posté le 10-01-2008 à 10:53:19    

c'etait pour voir si tu suivais :d


---------------

Reply

Marsh Posté le 10-01-2008 à 11:10:00    

Arghh en fait ca marche que sur mon local et pas chez l'hebergeur. :-(
 
En débuguant j'ai partout pareil sauf là ou j'ai vide comme resultat...
$jour = $t_jour[date('N',$ts)];
 

Reply

Marsh Posté le 10-01-2008 à 11:14:25    

il a quelle version de php ?


---------------

Reply

Marsh Posté le 10-01-2008 à 11:14:25   

Reply

Marsh Posté le 10-01-2008 à 11:15:00    

$ts="1198537200";
$res=date('N',$ts)
 
$res vaut 2 sur mon local et N chez l'herbergeur...

Reply

Marsh Posté le 10-01-2008 à 11:18:54    

Herbergeur : 4.4.7
Mon Local : 5.2.4

Reply

Marsh Posté le 10-01-2008 à 11:19:40    

regarde avec date('w') alors ( date('N' est pour php 5.1 et plus )  
 
w   Jour de la semaine au format numérique   0 (pour dimanche) à 6 (pour samedi)


---------------

Reply

Marsh Posté le 10-01-2008 à 11:23:34    

Donc ce qui nous donne finalement :
$t_jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi" );
$ljour = $t_jour[date('w',$ts)];
 
Encore merci flo

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed