[PHP - Mysql] Insérer date dans bdd

Résolu
Bonjour,

Pourquoi ce script ne me retourne pas un truc comme "le Jeudi 26 Novembre 2009" ?!

$JourL = strftime("%A");
$Jour = strftime("%d");
$Mois = strftime("%B");
$Annee = strftime("%Y");
$date = "le " . $JourL . " " . $Jour . " " . $Mois . " " . $Annee;
setlocale ("LC_TIME", "fr");

J'utilise une requête avec, comme valeurs à insérer dans le champ de type Varchar sans autre spécificitées, la variable $date. Le résultat actuel est "le Thursday 26" ?!

Merci ;)
Configuration: Windows Vista
Firefox 3.5.5

6 réponses

  1. Bonjour,

    As-tu essayé d'utiliser la fonction setlocale avant d'utiliser la fonction strftime ?
    1. oui, j'ai déjà essayé de faire cela, sans succès :

      setlocale ("LC_TIME", "fr");
      $JourL = strftime("%A");
      $Jour = strftime("%d");
      $Mois = strftime("%B");
      $Annee = strftime("%Y");
      $date = "le " . $JourL . " " . $Jour . " " . $Mois . " " . $Annee;
      1. Le problème vient du fait que ce soit en anglais ?

        %A Nom complet du jour de la semaine De Sunday à Saturday

        Essaye avec :

        $jourdate = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
        $JourL = $jourdate[strftime("%w")]; 
        

        1. Ok merci ça marche pour les jours,
          seulement j'ai fait la même chose (avec %m) pour les mois et ça me renvoie systématiquement la dernière valeur de l'array (décembre) ?!

          Mon script :
          // INSERTION DATE
          // Conversion en fr
          $jourfr = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
          $moisfr = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
          // reconnaissance de l'heure
          $JourL = $jourfr[strftime("%w")];
          $JourN = strftime("%d"); 
          $Mois = $moisfr[strftime("%m")];
          $Annee = strftime("%Y");
          $date = "le " . $JourL . " " . $JourN . " " . $Mois . " " . $Annee;
          1. Car %m te renvoi de 01 à 12 contrairement a %w qui renvoi de 00 a 06
            Il faut donc decaler ton array de une case :
            $moisfr = array('VIDE','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');


            EDIT :

            Ou alors faire -1 dans ton calcul :
            $Mois = $moisfr[strftime("%m") - 1];

            Discussions similaires

            MFG pas encore arrivée

            2 réponses