titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004
-
17 févr. 2004 à 15:16
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004
-
18 févr. 2004 à 11:20
kikou a tous!!!
pffff j'ai un énorme problème et urgent a règler mais je n'arrive pas a voir l'erreur!!!!
au secours!!!!
j'ai une liste déroulante semaine créée a partir des données de la base
et j'ai une ligne de tableau appelée jours
je voudrais savoir comment on fait, une fois que l'on a saisie la semaine dans la liste déroulante, ca affiche par exemple pour la semaine du 16/02/2004 au 22/02/2004 ca m'affichera lundi 16, mardi 17, mercredi 18 etc...
je vous donne mon code et mon erreur,
d'abord le code:
$datedebut="2004-29-01"; //c un jeudi
$datefin="2004-02-06"; // c le jeudi suivant
$jour = array ('Lundi' , 'Mardi' , 'Mercredi' , 'Jeudi' , 'Vendredi', 'Samedi', 'Dimanche');
echo"<tr align="center"><td width="400"></td>";
$tab=explode("-",$chaine);//séparateur
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))];
$valid=checkdate($tab[1],$tab[2],$tab[0]);
if ($valid==true)
{
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))];
}
else
{
if($tab[1]<12)
{
$tab[1]++; // là c'est si on le mois n'etais pas "decembre"
}
else //si c decembre
{
$tab[0]=$tab[0]+1; //on augmente d'une année
$tab[1]=1; // on se met au mois de janvier
$tab[2]=1; //on se met le premier
}
}
//permet d'afficher la ligne des jours
for($i=0; $i<7; $i++)
{
echo" <td colspan="2">".$jour[$i]."</td>";
}
echo" </tr> ";
et l'erreur:
Warning: unexpected error in date() in d:\intranet\ddsv28\tableau.php on line 99
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 17 févr. 2004 à 18:11
hello titigrou..
regarde bien ton code!
1)tu fais un explode de $chaine sans declarer ce qu'est chaine !
2) je t'avais filé ce code: la date du debut est $datedebut="2004-01-29" (et pas 29-01, c'est une erreur..)
3) ton tableau de jour doit commencer par dimanche pou etre standart avec php.
4) tu as oublié ton while pour aller jusqu'à ta date de fin...
5) ce n'est pas
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))];
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004 18 févr. 2004 à 08:43
bon j'ai corrigé le 1), le 2) (l'erreur c toi qui l'a faite, pas moi!!) ;p, le 3) et le 5)
mais je ne vois pas ou mettre mon while pour ma date de fin!
et puis pour l'instant ca m'affiche en dehors du tableau, ce qui est normal parce qu'avec tout votre charabia je suis complètement paumé!
sniff
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 18 févr. 2004 à 09:01
re !
oui je sais bien que c moi qu avait mis 29-01 et pas 01-29.. mais ce que je voudrais c'est que tu comprennes le code ! pas que tu recopies sans eflechir !
tu me demandes ce que tu dois mettre comme variable dans le explode !
je pense que c'est tres simple de répondre à cette question !
as tu regardé ce que fais la fonction explode?
-> elle édécoupeé une chaine en tableau suivant le séparateur.
dans ton cas le séparateur c'est "-". quelle est la chaine qu'il faut découper?
ensuite pour ton while..
tu veux aller de la date de debut à la date de fin et afficher les date intermediaire c'est bien ça?
et bien ton while doit etre du genre
tant que date_de_debut < date_de_fin
| afficher date intermediaire
| incrementer date de fin
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Vous n’avez pas trouvé la réponse que vous recherchez ?
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 18 févr. 2004 à 09:21
l'incrementation c'est augmenter la date de debut de 1 jour jusqu'à ce qu'elle ateigne la date de fin..
mais c'est pas si simple, parce que, quand on arrvie à la in du mois, c'est pas un jour qu'il faut rajouter, mais 1 mois (et le jour repars à 01 ) et quand on arrive à la fin de l'année, c'est une année qui'il faut rajouter, le mois repart de 01 et le jour de 01.
voila pourquoi il y a un checkdate et un if<12 ....
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 18 févr. 2004 à 09:55
à priori la date intermediaire n'est pas sous le format "yyyy-mm-dd" donc je vois pas pkoi faudrait la "casser"..
non..C'est bien la date du début.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004 18 févr. 2004 à 10:08
nan c'est bon!
j'avais fait une fausse manipulation!
mais c'est normal, qu'il m'affiche juste jeudi 29????
il ne marche pas dans le tableau c'est normal car j'ai défini comme ceci pour l'affichage dans le tableau:
echo" <td colspan="2">".$jour[$i]."</td>";
faudrait que je mette ce truc la?: