Problème pour convertir un mois numérique au format lettre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème pour convertir un mois numérique au format lettre

Re: Problème pour convertir un mois numérique au format lettre

par stealth35 » 05 sept. 2010, 17:47

pour les mois suivant la langue c'est strftime, et pour parser une date c'est strtotime, (mais comme ta un format particulier faut le modifier un peu)
//setlocale(LC_TIME, 'french');
$date = str_replace('/', '-', '15/09/2010');
echo strftime('%B', strtotime($date));
//septembre

Re: Problème pour convertir un mois numérique au format lettre

par Benamour Jr » 05 sept. 2010, 11:04

Problème résolu en supprimant le 0 devant le numéro du mois car apparemment un entier précédé d'un 0 est considéré en octal (base 8). Comme 8 et 9 n'existent pas en octal ces chiffres deviennent 0 dans le code.

Problème pour convertir un mois numérique au format lettre

par Benamour Jr » 05 sept. 2010, 10:40

Bonjour,

Je fais face à un problème que j'ai du mal à comprendre, c'est pourquoi je viens vers vous en espérant que vous puissiez m'éclairer un peu.

Voici mon code (simplifié) qui vise à transformer au format lettre le numéro d'un mois :
<?php
$date_inscription = '15/09/2010';

$date_inscription_exploded = explode('/', $date_inscription);

echo $date_inscription_exploded[1];

switch ($date_inscription_exploded[1])
{
	case 01:
		$mois_inscription = ' janvier ';
		break;

	case 02:
		$mois_inscription = ' février ';
		break;

	case 03:
		$mois_inscription = ' mars ';
		break;

	case 04:
		$mois_inscription = ' avril ';
		break;

	case 05:
		$mois_inscription = ' mai ';
		break;

	case 06:
		$mois_inscription = ' juin ';
		break;

	case 07:
		$mois_inscription = ' juillet ';
		break;

	case 08:
		$mois_inscription = ' août ';
		break;

	case 09:
		$mois_inscription = ' septembre ';
		break;

	case 10:
		$mois_inscription = ' octobre ';
		break;

	case 11:
		$mois_inscription = ' novembre ';
		break;

	case 12:
		$mois_inscription = ' décembre ';
}

echo $mois_inscription;
?>

Le code fonctionne parfaitement lorsque le mois est compris entre 01 et 07 ainsi qu'entre 10 et 12 (ce script m'affiche donc par exemple "03 mars" si la date est "15/03/1988") <gras>MAIS</gras> il ne m'affiche que "08" ou "09" lorsque date est par exemple 15/08/1988 ou 15/09/1988... impossible donc de retranscrire ces deux mois au format lettre... o.O

Cas concret :
1) un membre qui s'est inscrit le 25 mars 2010, aucun problème d'affichage :
http://www.e-storia.info/fiche_membre.php?id=1
2) un membre qui s'est inscrit le 26 aout 2010, le mois ne s'affiche pas :
http://www.e-storia.info/fiche_membre.php?id=75

Quelqu'un pourrait-il m'indiquer d'où vient mon erreur ? Merci :)