IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Ajouter le numéro de la semaine


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Par défaut [Non résolu] Ajouter le numéro de la semaine
    Bonjour,

    J'utilise un calendrier que j'ai adapté a mes besoins. (trouvé Ici.

    Je souhaite ajouter une colonne avec les numéros des semaines, mais comme se dernier est fait sous forme de liste, je ne c'est pas comment le faire.

    Voici un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    		  // Affichage du mois et de l'année
     
              $leCalendrier .= "<div style=\"float:left\"><img src=\"images/calendrier.png\" alt=\"calendrier\" width=\"71px\" height=\"62px\" /></div><h2>&raquo; " . monthNumToName(getMonth($periode)) . " " . getYear($periode) . "</h2><br /><br />";
     
     
              // Affichage des entêtes
              $leCalendrier .= "
    		   <ul id=\"libelle\">
                   \t<li>Lundi</li>
                   \t<li>Mardi</li>
                   \t<li>Mercredi</li>
                   \t<li>Jeudi</li>
                   \t<li>Vendredi</li>
                   \t<li>Samedi</li>
                   \t<li>Dimanche</li>
              </ul>";
              // Tant que l'on n'a pas affecté tous les jours du mois traité
              while ($pas < $nb_jour) {
                   if ($indexe == 1) $leCalendrier .= "\n\t<ul class=\"ligne\">";
                   // Si le jour calendrier == jour de la semaine en cours
                   if (Date("w", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == $tableau[$indexe]) {
                        // Si jour calendrier == aujourd'hui
                        $afficheJour =  '  
    							  <a class="date_jour" href="#" onclick="javascript:ahah(\'modules/agenda/agenda.php?date='.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'-'.getMonth($periode).'-'.getYear($periode).'\',\'bloc_right\');">'.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'</a>'  ;
                        if (Date("Y-m-d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == Date("Y-m-d")) {
                             $class = " class=\"itemCurrentItem\"";
                        }
                        else {
                             // 1 est toujours vrai => on affiche un lien à chaque fois
                             // Affichage des jours avec les liens vers le bloc agenda
                             if (1) {
                                  $class = " class=\"itemExistingItem\"";
                                  $afficheJour =  '  
    							  <a  href="#" onclick="javascript:ahah(\'modules/agenda/agenda.php?date='.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'-'.getMonth($periode).'-'.getYear($periode).'\',\'bloc_right\');">'.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'</a>'  ;
                             }
                             else {
                                  $class = "";
                             }
                        }
     
     
     
    					// Ajout de la case avec la date
                        $leCalendrier .= "\n\t\t<li$class>$afficheJour </li>";
                        $pas++;
                   }
                   //
                   else {
                        // Ajout d'une case vide
                        $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
                   }
                   if ($indexe == 7 && $pas < $nb_jour) { $leCalendrier .= "\n\t</ul>"; $indexe = 1;} else {$indexe++;}
              }
              // Ajustement du tableau
              for ($i = $indexe; $i <= 7; $i++) {
                   $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
              }
              $leCalendrier .= "\n\t</ul><br /><br /><br /><br />\n";
    Merci d'avance :s

  2. #2
    Membre éclairé Avatar de StAfX
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    Il manque la moitié du code, il faudrait avoir toutes les fonctions pour essayer de déchiffrer tout ça

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Par défaut
    Biensur, le voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?php
     
              // Fonction pour afficher le calendrier
         function showCalendar($periode) {
              $leCalendrier = "";
              // Tableau des valeurs possibles pour un numéro de jour dans la semaine
              $tableau = Array("0", "1", "2", "3", "4", "5", "6", "0");
              $nb_jour = Date("t", mktime(0, 0, 0, getMonth($periode), 1, getYear($periode)));
              $pas = 0;
              $indexe = 1;
     
     
    		  // Affichage du mois et de l'année
     
              $leCalendrier .= "<div style=\"float:left\"><img src=\"images/calendrier.png\" alt=\"calendrier\" width=\"71px\" height=\"62px\" /></div><h2>&raquo; " . monthNumToName(getMonth($periode)) . " " . getYear($periode) . "</h2><br /><br />";
     
     
              // Affichage des entêtes
              $leCalendrier .= "<div style=\"background-image: url(images/calendrier_font.png); background-repeat:no-repeat;  height : 160px\" > 
    		   <ul id=\"libelle\">
                   \t<li>Lundi</li>
                   \t<li>Mardi</li>
                   \t<li>Mercredi</li>
                   \t<li>Jeudi</li>
                   \t<li>Vendredi</li>
                   \t<li>Samedi</li>
                   \t<li>Dimanche</li>
              </ul>";
              // Tant que l'on n'a pas affecté tous les jours du mois traité
              while ($pas < $nb_jour) {
                   if ($indexe == 1) $leCalendrier .= "\n\t<ul class=\"ligne\">";
                   // Si le jour calendrier == jour de la semaine en cours
                   if (Date("w", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == $tableau[$indexe]) {
                        // Si jour calendrier == aujourd'hui
                        $afficheJour =  '  
    							  <a class="date_jour" href="#" onclick="javascript:ahah(\'modules/agenda/agenda.php?date='.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'-'.getMonth($periode).'-'.getYear($periode).'\',\'bloc_right\');">'.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'</a>'  ;
                        if (Date("Y-m-d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == Date("Y-m-d")) {
                             $class = " class=\"itemCurrentItem\"";
                        }
                        else {
                             // 1 est toujours vrai => on affiche un lien à chaque fois
                             // Affichage des jours avec les liens vers le bloc agenda
                             if (1) {
                                  $class = " class=\"itemExistingItem\"";
                                  $afficheJour =  '  
    							  <a  href="#" onclick="javascript:ahah(\'modules/agenda/agenda.php?date='.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'-'.getMonth($periode).'-'.getYear($periode).'\',\'bloc_right\');">'.Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))).'</a>'  ;
                             }
                             else {
                                  $class = "";
                             }
                        }
     
     
     
    					// Ajout de la case avec la date
                        $leCalendrier .= "\n\t\t<li$class>$afficheJour </li>";
                        $pas++;
                   }
                   //
                   else {
                        // Ajout d'une case vide
                        $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
                   }
                   if ($indexe == 7 && $pas < $nb_jour) { $leCalendrier .= "\n\t</ul>"; $indexe = 1;} else {$indexe++;}
              }
              // Ajustement du tableau
              for ($i = $indexe; $i <= 7; $i++) {
                   $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
              }
              $leCalendrier .= "\n\t</ul><br /><br /><br /><br /></div>\n";
     
              // Retour de la chaine contenant le Calendrier
              return $leCalendrier;
         }
     
     
     
    ?>

  4. #4
    Membre éclairé Avatar de StAfX
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    bonsoir,

    je te parlais des autres fonctions genre getYear... etc, mais je les ai trouvé sur ton lien donc no pb

    Pour ajouter le numéro de la semaine il faut le calculer en calculant d'abord le nombre de semaines écoulées dans l'année... je t'ai fais ça vite fais, j'ai mis le numéro de la semaine (en vrac), à toi de voir comment tu veux le faire apparaitre, mais il suffit de le mettre dans des balises html et le css correspondant... je te laisse faire mais demande si t'as besoin...

    (j'ai indiqué les parties ajoutées par //--> )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    	   // Fonction pour afficher le calendrier
         function showCalendar($periode) {
    			$leCalendrier = "";
              // Tableau des valeurs possibles pour un numéro de jour dans la semaine
    			$tableau = Array("0", "1", "2", "3", "4", "5", "6", "0");
    			$nb_jour = Date("t", mktime(0, 0, 0, getMonth($periode), 1, getYear($periode)));
    			$pas = 0;
    			$indexe = 1;
     
    //-->			// calcule la première semaine du mois courant
    			$nb_jour_annee = 0;
    			$num_mois = getMonth($periode);
    			for ($i = 1; $i < $num_mois; $i++)	{
    				$nb_jour_annee += Date("t", mktime(0, 0, 0, $i , 1, getYear($periode)));
    			}
    			$semaine = $nb_jour_annee/7;
     
    			$semaine = (int)$semaine;
    			$semaine++;
    				//
     
              // Affichage du mois et de l'année
              $leCalendrier .= "\n\t<h2>&raquo; " . monthNumToName(getMonth($periode)) . " " . getYear($periode) . "</h2>";
              // Affichage des entêtes
              $leCalendrier .= "
              <ul id=\"libelle\">
    				\t<li>L</li>
    				\t<li>M</li>
    				\t<li>M</li>
    				\t<li>J</li>
    				\t<li>V</li>
    				\t<li>S</li>
    				\t<li>D</li>
              </ul>";
     
     
     
              // Tant que l'on n'a pas affecté tous les jours du mois traité
              while ($pas < $nb_jour) {
     
                   if ($indexe == 1) {	$leCalendrier .= "\n\t<ul class=\"ligne\">"
    //-->				// ajoute le numéro de la semaine...
    					$leCalendrier .= "semaine ".$semaine;
    		}
                   // Si le jour calendrier == jour de la semaine en cours
                   if (Date("w", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == $tableau[$indexe]) {
                        // Si jour calendrier == aujourd'hui
                        $afficheJour = Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
                        if (Date("Y-m-d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == Date("Y-m-d")) {
                             $class = " class=\"itemCurrentItem\"";
                        }
                        else {
                             // 1 est toujours vrai => on affiche un lien à chaque fois
                             // A vous de faire les tests nécessaire si vous gérer un agenda par exemple
                             if (1) {
                                  $class = " class=\"itemExistingItem\"";
                                  $afficheJour = "<a href=\"\">" . Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) . "</a>";
                             }
                             else {
                                  $class = "";
                             }
                        }
                        // Ajout de la case avec la date
                        $leCalendrier .= "\n\t\t<li$class>$afficheJour</li>";
                        $pas++;
                   }
                   //
                   else {
                        // Ajout d'une case vide
                        $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
                   }
                   if ($indexe == 7 && $pas < $nb_jour) { 
    					$leCalendrier .= "\n\t</ul>"; $indexe = 1;
    //-->			// incrémente le numéro de la semaine
    					$semaine++; 
    	       } else {$indexe++;}
              }
              // Ajustement du tableau
              for ($i = $indexe; $i <= 7; $i++) {
                   $leCalendrier .= "\n\t\t<li>&nbsp;</li>";
              }
              $leCalendrier .= "\n\t</ul>\n";
     
              // Retour de la chaine contenant le Calendrier
              return $leCalendrier;
         }
    a+

  5. #5
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Par défaut
    Merci beaucoup C'est exactement ce que je cherchai à faire !

    Maintenant le petit soucis c'est que le css ne s'applique pas au numéro de semaine.
    Par exemple, je conditionne les numéros dans des div en position absolu (pour essayer) en ajoutant un clin d'oeil du style ajouter un "coucou" dans le div.

    Le résultat est que les "coucou" sont bien en position absolu, mais les numéro de semaine reste avec les numéro des jours de semaine.

    Saurais-tu comment dois-je procéder ?

  6. #6
    Membre éclairé Avatar de StAfX
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    Excuse moi mais je n'ai pas trop compris l'histoire du "coucou"...

    tu peux remplacer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $leCalendrier .= "semaine ".$semaine
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $leCalendrier .= '<div id="semaine"> '.$semaine.'</div>';
    (je suppose que c'est ce que tu as fais)... mais quel est le problème exactement??

    est-ce que tu peux me montrer le code de ce que tu as essayé...

    merci.

Discussions similaires

  1. [XL-2010] Affichage automatique des dates selon le numéro de la semaine
    Par Nessie37 dans le forum Conception
    Réponses: 3
    Dernier message: 14/06/2011, 15h07
  2. Recherche d'une date à partir du numéro de la semaine
    Par FMDCC dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/01/2010, 17h22
  3. [VB.NET] Obtenir le numéro de la semaine d'une date
    Par alain&&thomas dans le forum Windows Forms
    Réponses: 9
    Dernier message: 07/09/2009, 17h54
  4. [Dates] Obtenir le numéro de la semaine courante
    Par aromot dans le forum Langage
    Réponses: 4
    Dernier message: 30/12/2008, 14h48
  5. [Dates] Compter le numéro de la semaine
    Par etudianti4 dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2008, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo