[PHP - Mysql] Insérer date dans bdd

[Résolu/Fermé]
Signaler
Messages postés
193
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
7 novembre 2010
-
Messages postés
193
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
7 novembre 2010
-
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 ;)

6 réponses

Messages postés
400
Date d'inscription
vendredi 2 octobre 2009
Statut
Membre
Dernière intervention
23 décembre 2009
66
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
68
Bonjour,

As-tu essayé d'utiliser la fonction setlocale avant d'utiliser la fonction strftime ?
Messages postés
193
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
7 novembre 2010
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;
Messages postés
400
Date d'inscription
vendredi 2 octobre 2009
Statut
Membre
Dernière intervention
23 décembre 2009
66
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")]; 

Messages postés
193
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
7 novembre 2010
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;
Messages postés
193
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
7 novembre 2010
1
Super ça marche ! =)