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] calendrier mois suivant, précédent


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Profil pro
    Consultant Business Intelligence
    Inscrit en
    Novembre 2005
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant Business Intelligence

    Informations forums :
    Inscription : Novembre 2005
    Messages : 284
    Points : 186
    Points
    186
    Par défaut [Dates] calendrier mois suivant, précédent
    Bonjour,
    je suis en train de faire un petit calendrier comme celui de window,
    pour l'instant il s'affiche avec les parametres d'aujourd'hui et l'affichage est correct mais j'aimera ajouter 4 liens, sur mois suivant, précédent et années suivant années précédente je ne vois pas comment faire.Qulqu'un peut m'aider voici le 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
    <?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>";
    ?>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    D'après ce que j'ai compris, voici ce que je mettrais :

    Pour l'année précédente et suivante (hum simple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prevYear=$annee-1;	
    $nextYear=$annee+1;
    Pour le mois suivant et précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prevMonth=mktime(0,0,0,$mois-1,1,$annee);	
    $nextMonth=mktime(0,0,0,$mois+1,1,$annee);

    Et bonus, pour le jour suivant et précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prevDay=mktime(0,0,0,$mois,$aujourdhui-1,$annee);	
    $nextDay=mktime(0,0,0,$mois,$aujourdhui+1,$annee);
    Normalement, ca devrait marcher (si c'est po le cas, désolé ^^)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    A oui, information complémentaire :

    Pour l'année suivante et précédente, y'a pas de problème, par contre pour le mois suivant/précédent et le jour suivant/précédent, il fo savoir si tu change d'année et/ou de mois. Par exemple, si tu es au mois 12/2005 (décembre) et que tu passe au mois suivant 01/2006, tu changes d'année.
    Pareil pour les jours suivants/précédents (changement de mois et d'année).

    Le mktime va te retourner un timestamp. Ce timestamp correspondra à la date suivante ou précédente, et donc tu pourra savoir si tu change d'année et/ou mois.

    Exemple pour le jour suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $nextDayTime = mktime(0,0,0,$mois,$aujourdhui+1,$annee);
    $nextDay = date("j",$nextDayTime);
    $mouthForNextDay = date("n",$nextDayTime);
    $yearForNextDay = date("Y",$nextDayTime)
    Même démarche pour les mois. Après, tu adaptes ça a ta sauce.
    J'espère que mon explication est plus claire, (et que je ne suis pas hors sujet ^^)

  4. #4
    Membre habitué

    Profil pro
    Consultant Business Intelligence
    Inscrit en
    Novembre 2005
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant Business Intelligence

    Informations forums :
    Inscription : Novembre 2005
    Messages : 284
    Points : 186
    Points
    186
    Par défaut
    Salut,
    Merci de ta réponse mais entre temps j'ai fait comme cela:
    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
     
    //annee actuelle
    if(isset($_REQUEST["a"]))
    	$annee = $_REQUEST["a"];
    else
    	$annee = date("Y");
     
    //mois actuel
    if(isset($_REQUEST["m"]))
    	$mois = $_REQUEST["m"];
    else
    	$mois = date("n");
     
    $moisTexte = date("F", mktime(0,0,0,$mois,1, $annee));
     
    echo "<table><tr><td>
    <a href='miniCalendrier.php?a=".($annee-1)."&m=".($mois)."'>Prec</a>
    </td><td>$annee</td><td><a href='miniCalendrier.php?a=".($annee+1)."&m=".($mois)."'>suivant</a></td></tr><tr><td><a href='miniCalendrier.php?m=".($mois-1)."&a=".($annee)."'>Prec</a></td><td>$moisTexte</td><td><a href='miniCalendrier.php?m=".($mois+1)."&a=".$annee."'>Suiv</a></td></tr>";
    J'aimerai bien adapter ton astuce que quand tu arrive à Décembre ou en janvier ça passe à l'an prochain ou précédent

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    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
    <?php
    // Année et mois courant
    $currYearID = (isset($_GET["a"]))?$_GET["a"]:date("Y");
    $currMonthID = (isset($_GET["m"]))?$_GET["m"]:date("n");
     
    // Timestamp des mois précédent et suivant
    $prevMonth = mktime(0,0,0,$currMonthID-1,1,$currYearID);
    $nextMonth = mktime(0,0,0,$currMonthID+1,1,$currYearID);
     
    // Détermination des URLs
    $prevYearURL = "a=".($currYearID-1)."&amp;"."m=".$currMonthID;
    $nextYearURL = "a=".($currYearID+1)."&amp;"."m=".$currMonthID;
    $prevMonthURL = "a=".date("Y",$prevMonth)."&amp;"."m=".date("n",$prevMonth); 
    $nextMonthURL = "a=".date("Y",$nextMonth)."&amp;"."m=".date("n",$nextMonth); 
    ?>
    <table>
        <tr>
            <td><a href="miniCalendrier.php?<?php echo $prevYearURL;?>">Prec</a></td>
            <td><?php echo $currYearID;?></td>
            <td><a href="miniCalendrier.php?<?php echo $nextYearURL;?>">Suiv</a></td>
        </tr>
        <tr>
            <td><a href="miniCalendrier.php?<?php echo $prevMonthURL;?>">Prec</a></td>
            <td><?php echo date("F",mktime(0,0,0,$currMonthID,1,$currYearID));?></td>
            <td><a href="miniCalendrier.php?<?php echo $nextMonthURL;?>">Suiv</a></td>
        </tr>
    </table>
    Ce code devrait satisfaire ta requête. Mais normalement, avec ce que je t'ai fourni avant, tu aurais pu trouver comment faire (ca va que je suis en vacances :p)

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par NiNiX
    (ca va que je suis en vacances :p)
    Euh... Je ne suis pas en vacances. Je peux t'envoyer une partie de mon boulot si tu veux

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Laisse moi réfléchir, hummmm ... non

  8. #8
    Membre habitué

    Profil pro
    Consultant Business Intelligence
    Inscrit en
    Novembre 2005
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant Business Intelligence

    Informations forums :
    Inscription : Novembre 2005
    Messages : 284
    Points : 186
    Points
    186
    Par défaut
    Merci beaucoup! Si pour tes vacances tu sais vraiment pas quoi faire...C'est cool de m'aider merci encore

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

Discussions similaires

  1. Probleme Remplissage ComboBOX avec DATE du mois suivant
    Par RootsInternationnal dans le forum C#
    Réponses: 9
    Dernier message: 16/07/2009, 08h18
  2. Filtre sur la première date du mois suivant!
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 20h44
  3. [Dates] calendrier : premier jour de chaque mois
    Par vodasan dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2007, 07h26
  4. Réqueter sur les dates du mois précédent.
    Par Bigdeal dans le forum Access
    Réponses: 4
    Dernier message: 08/07/2006, 13h11
  5. [Dates] Calculer le nombre de jours dans le mois suivant...
    Par Life Hunter dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 00h01

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