[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. 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];
    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. 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. 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. Bonjour,

            As-tu essayé d'utiliser la fonction setlocale avant d'utiliser la fonction strftime ?

            Discussions similaires

            MFG pas encore arrivée

            2 réponses