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] ordonner un calendrier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut [Dates] ordonner un calendrier
    Bonjour,

    j'ai trouvé un script assez sympatoche sur ce forum :

    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
    <?php
    //mois actuel
    $mois = date("n");
    $moisTexte = date("F");
    //annee actuelle
    $annee = date("Y");
    //jour actuel
    $aujourdhui = date("j");
     
     
    //retourne le nombre de jour pour un mois et pour une annee
    $nbreJour = date("t", mktime(0,0,0,$mois,1,$annee));
    //retourne le nombre de jour avant le premier
    $nbreJourSem= date("w", mktime(0,0,0,$mois,1,$annee));
     
    echo "<table><tr><td>Prec</td><td>$annee</td><td>suivant</td></tr><tr><td>Prec</td><td>$moisTexte</td><td>Suiv</td></tr>";
    echo "<table><tr><td>Di</td><td>Lu</td><td>Ma</td><td>Me</td><td>Je</td><td>Ve</td><td>Sa</td></tr>";
     
    $nbrSautJourAvantPremier = 0;
    for($nbrSautJourAvantPremier = 0; $nbrSautJourAvantPremier<$nbreJourSem;$nbrSautJourAvantPremier++)
    {
    	if($nbrSautJourAvantPremier%7==0)	
    		{echo "\n<tr>";}
     
    	echo"<td>";
    	echo "</td>";
     
    	if(($nbrSautJourAvantPremier+1)%7==0)
        	{echo "</tr>";}
    }
     
    for ($i = 0; $i <$nbreJour; $i++) {
    	if(($i+$nbrSautJourAvantPremier)%7==0)	
    		{echo "\n<tr>";}
     
    	echo"<td>";
    	if($i==$aujourdhui)
    	{
    		echo "<a href=\"#\">". ($i+1) ."</a>";
    		echo "</td>";
    	}
    	else
    	{
    		echo "<a href=\"#\">" . ($i+1) ."</a>";
    		echo "</td>";
    	}	
    	if((($i+$nbrSautJourAvantPremier)+1)%7==0)
        	{echo "</tr>";}
    }
    echo "</table>";
    ?>

    M'ais j'aimerais bien pouvoir l'adapter dans l'ordre des jours de la semaine...
    Actuellement, il affiche : Dimanche - Lundi - .... - Samedi

    Moi je voudrais qu'il s'affiche : Lundi - Mardi - .... - Samedi - Dimanche

    J'espère que vous aurez compris ma petite subtitilité. Je sèche la dessus

    Merci pour votre aide


    edit : j'oubliais, j'ai trouvé une ptite astuce en rajoutant -1 a $nbreJourSem dans la première boucle, ca à l'air de marche, mais ca bloque quand $nbreJourSem est égal à 0.... car 0-1 = error lol

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    personne pour maider ? si vous avez pas compris le sens de ma question , n hesitez pas a me poser des questions

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    j'ai l'impression qu'il nous manque du code pour qu'on puisse t'aider

    je vois meme pas ou est ce que tu affiche le jour de la semaine

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par maximenet
    j'ai l'impression qu'il nous manque du code pour qu'on puisse t'aider

    je vois meme pas ou est ce que tu affiche le jour de la semaine

    nono il est complet de t'asssure

    Là j'affiche les jours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<table><tr><td>Di</td><td>Lu</td><td>Ma</td><td>Me</td><td>Je</td><td>Ve</td><td>Sa</td></tr>";

    et là le numéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if($i==$aujourdhui)
    	{
    		echo "<a href=\"#\">". ($i+1) ."</a>";
    		echo "</td>";
    	}
    	else
    	{
    		echo "<a href=\"#\">" . ($i+1) ."</a>";
    		echo "</td>";
    	}

    ca fait un truc du genre :

    Di - Lu - Ma - Me - Je - Sa
    ............2......3.....4.....5
    6.....7...................



    Moi je voudrais que ca fasse
    Lu - Ma - Me - Je - Sa - Di
    ........2......3.....4.....5.....6
    7............................


    Mais c'est pas aussi simple...

    A vrai dire, comme je l'ai dit il faut déjà rajouter -1 ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($nbrSautJourAvantPremier = 0; $nbrSautJourAvantPremier<$nbreJourSem-1;$nbrSautJourAvantPremier++)
    Ca marche nickel sauf kand $nbreJourSem==0, c'est là que je bloque carje trouve pas la condition qui puisse me permettre d'afficher les jours commencant par dimanche (enfin selon le calendrier Php) correctement.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    ah pardon, j'aivais pas du tout compris ton problème

    ben franchement tu t'embete là vie pour rien, car ce genre de chose y'a déjà des milliers de gens qui y ont réfléchit avant toi alors suffit de faire:

    http://www.google.fr/search?hl=fr&q=...+un+calendrier

    tu va trouver un tas de script déjà écrit.

    maintenant dit le moi si tu fait çà pour apprendre la programmation, on pourra t'aider sur ton probleme

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par maximenet
    ah pardon, j'aivais pas du tout compris ton problème

    ben franchement tu t'embete là vie pour rien, car ce genre de chose y'a déjà des milliers de gens qui y ont réfléchit avant toi alors suffit de faire:

    http://www.google.fr/search?hl=fr&q=...+un+calendrier

    tu va trouver un tas de script déjà écrit.

    maintenant dit le moi si tu fait çà pour apprendre la programmation, on pourra t'aider sur ton probleme

    Bah en faite oui, c'est surtout pour apprendre, je connais déjà un peu le php mais je suis très nul en math ... J'aimerais bien résoudre ce problème moi même car j'essaye de construire et comprendre mon prog de A à Z sans avoir à copie coller un code trouver je ne sais où.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Bon, j'ai déjà réussi à contourner un premier problème qui est l'affichage de la première ligne ...J'arrive à afficher le premier jour au dimanche correctement...

    J'ai rajouté ca au 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
    for($nbrSautJourAvantPremier = 0; ($nbrSautJourAvantPremier<$nbreJourSem-1);$nbrSautJourAvantPremier++)
    {
     
     
    	echo"<td>";
    	echo "</td>";
     
    	if(($nbrSautJourAvantPremier+1)%7==0)
        	{echo "</tr>";}
    }
     
    if ($nbreJourSem==0)
    	{ 
    		for ($i=0;$i<6;$i++)
    		{
    			echo"<td>";
    			echo "</td>";
    		}
    	}

    Par contre la suite c'est une catastrophe...

    Ca se passe dans la éème boucle :

    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
    for ($i = 0; $i <$nbreJour; $i++) {
    	if(($i+$nbrSautJourAvantPremier)%7==0&&($i+$nbreJourSem)!=0)	
    		{echo "\n<tr>";}
     
    	echo"<td>";
    	if($i==$aujourdhui)
    	{
    		echo "<a href=\"#\">". ($i+1) ."</a>";
    		echo "</td>";
    	}
    	else
    	{
    		echo "<a href=\"#\">" . ($i+1) ."</a>";
    		echo "</td>";
    	}	
    	if((($i+$nbrSautJourAvantPremier)+1)%7==0&&$nbreJourSem!=0)
        	{echo "</tr>";}
     
    	if (($nbreJourSem==0)&&($i%7==0))
    		{echo "</tr>";}
    }
    Ca me fait alors ca :
    L M M J V S D
    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

    En faite la correction est à faire dans la toute dernière condition.

    Maintenant, si je met ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	if (($nbreJourSem==0)&&((($i+1)%7==0)||($i==0)))
    		{echo "</tr>";}

    Ca m'affiche ca :

    L M M J V S D
    .................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


    Et là y'a juste le 2ème dimanche du mois qui plante !!!!! Rrhh j'y suis presque, mais je suis à cours d'idée.... :'(

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Points : 62
    Points
    62
    Par défaut
    Bon j'ai finalement résolu mon problème en m'arrachant les cheveux depuis ce matin, et en bidouillant à mort, mais ca à l'air de fonctionner.. Voici mon 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
     
    for ($i = 0; $i <$nbreJour; $i++) {
     
    	if(($i+$nbrSautJourAvantPremier)%7==0&&($nbreJourSem)!=0)	
    		{echo "\n<tr>";}
     
    	if (($nbreJourSem==0)&&(($i-1)%7==0))
    		{echo "\n<tr>";}
     
    	echo"<td>";
    	if($i==$aujourdhui)
    	{
    		echo "<a href=\"#\">". ($i+1) ."</a>";
    		echo "</td>";
    	}
    	else
    	{
    		echo "<a href=\"#\">" . ($i+1) ."</a>";
    		echo "</td>";
    	}	
     
    	if((($i+$nbrSautJourAvantPremier)+1)%7==0&&$nbreJourSem!=0)
        	{echo "</tr>";}
     
    	if (($nbreJourSem==0)&&(($i%7==0)||($i==0)))
    		{echo "</tr>";}
    }
    Voila, a bientot !

  9. #9
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Salut,

    Je déterre un peu, mais ton script complet c'est quoi ?

    Merci d'avance

    Arnaud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sélection d'une date dans un calendrier
    Par navis84 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 17/04/2012, 17h12
  2. [Calendrier] Choisir une date dans un calendrier
    Par yoyothebest dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/05/2006, 10h39
  3. Selection de date dans un calendrier
    Par Gob4 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/05/2006, 14h37
  4. [Dates] mettre un calendrier dans une pagephp
    Par Tr@nkill dans le forum Langage
    Réponses: 12
    Dernier message: 07/04/2006, 14h19
  5. [VBA-E] choisir une date dans un calendrier
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/03/2006, 09h05

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