Calendrier en PHP
Résolu
Fetide68
Messages postés
745
Date d'inscription
Statut
Membre
Dernière intervention
-
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Calendrier php mysql
- Mon calendrier - Télécharger - Santé & Bien-être
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- Calendrier partagé google - Guide
- Synchroniser calendrier outlook et gmail - Guide
- Easy php - Télécharger - Divers Web & Internet
10 réponses
d'abord je pensais me rappeler que dans les listes déroulantes, l'attribut par défaut se notait selected="selected"
ensuite dans $jour[] je vois que dimanche est en première position alors qu'il est affiché en dernier
Sinon plus concretement pour ton problème de décalage, je vais donner mon avis perso:
t'as déjà réussi un joli coup: il t'écris pas toute la semaine entière, donc quand tu lui demandes un nouveau mois, tu dois le faire se décaler de n cases ... je vois sa ainsi:
Voilà ce que j'en penses. J'ai rajouté le code entre les "XXX" qui permet d'ajouter autant de "<td/>" (saut de case) que de jours déjà passés dans la semaine, et je modifie la boucle juste après pour qu'elle commence au 2e jour
ensuite dans $jour[] je vois que dimanche est en première position alors qu'il est affiché en dernier
Sinon plus concretement pour ton problème de décalage, je vais donner mon avis perso:
t'as déjà réussi un joli coup: il t'écris pas toute la semaine entière, donc quand tu lui demandes un nouveau mois, tu dois le faire se décaler de n cases ... je vois sa ainsi:
echo '<table class="calendrier" style="margin: auto; width: 420px;">'; echo '<tr class="entete"><td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td class="weekend">S</td><td class="weekend">D</td></tr>'; XXXXX $initiation_mois = strtotime('01-'.$month.'-'.$year); $jour_de_la_semaine = date('w',$date_du_day); $j=""; for($i=1; $i<=date('N',$jour_de_la_semaine);$i++) $j= $j."<td/>" XXXXXXX for ($day=2; $day<=$nombre_de_jour; $day++) { $date_du_day = strtotime($day.'-'.$month.'-'.$year); $jours_semaine = Array("0", "1", "2", "3", "4", "5", "6", "0"); $jour_de_la_semaine = date('w',$date_du_day); if ($jour_de_la_semaine==1) { echo '<tr>'; } echo '<td>'.$day.'</td>'; if ($jour_de_la_semaine==0) { echo '</tr>';
Voilà ce que j'en penses. J'ai rajouté le code entre les "XXX" qui permet d'ajouter autant de "<td/>" (saut de case) que de jours déjà passés dans la semaine, et je modifie la boucle juste après pour qu'elle commence au 2e jour
Je comprends un peu ton code que j'ai adapté pour l'insérer au bon endroit (brut, il ne fonctionne pas bien: ça me met tout en ligne):
Juste avant echo '<td>'.$day.'</td>' j'ai fait ça :
Mais ca me décale tout le tableau. Toutes les semaines un vendredi tous les mois...
Juste avant echo '<td>'.$day.'</td>' j'ai fait ça :
for ($i=1; $i<=date('N',$jour_de_la_semaine);$i++) echo "<td/>";
Mais ca me décale tout le tableau. Toutes les semaines un vendredi tous les mois...
non non je pense qu'on s'est mal compris: mon bout de code détermine quel est le 1er jour du mois sous forme numérique (lundi = 1; mardi = 2; ...) et passes autant de cases grace à <td/> (qui remplace une case vide <td></td>) mais cela doit etre fait une seule fois, avant la génération du calendrier complet (hors boucle for)
Oups, haaaa ! je me suis planté dans mon code et en effet je t'ai filé un truc qui ... fait rien du tout, alors jai fait une petite boucle for qui stocke une chaine dans $j sans l'utiliser, hop hop hop sa ne va pas, voilà en effet ce que j'aurais du mettre:
XXXXX
$initiation_mois = strtotime('01-'.$month.'-'.$year);
$jour_de_la_semaine = date('w',$date_du_day);
$j="";
for($i=1; $i<=date('N',$jour_de_la_semaine);$i++) echo "<td/>";
XXXXXXX
XXXXX
$initiation_mois = strtotime('01-'.$month.'-'.$year);
$jour_de_la_semaine = date('w',$date_du_day);
$j="";
for($i=1; $i<=date('N',$jour_de_la_semaine);$i++) echo "<td/>";
XXXXXXX
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question