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] Afficher les samedis et les dimanches


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [Dates] Afficher les samedis et les dimanches
    Bonjour tout le monde,

    Je me demandais si il était possible d'afficher dans un echo par exemple les dates de cette année et de l'année prochaine qui tombent un samedi et un dimanche ?

    Donc par exemple :

    3 janvier 2009
    4 janvier 2009
    10 janvier 2009
    11 janvier 2009
    17 janvier 2009
    18 janvier 2009
    25 janvier 2009
    26 janvier 2009
    ....

    Je pense qu'on doit utiliser mktime ?

    Le but serait d'insérer dans une base de données les jours qui sont un samedi et un dimanche.

    Merci d'avance pour votre aide.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu pars du 1 janvier, tu regardes quel jour de la semaine c'est et tu en deduis la date du premier samedi de l'année.
    Ensuite il ne te reste plus qu'a boucler de 7 jours.

    Le seul piège est que le 1er janvier peut etre un dimanche.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu pars du 1 janvier, tu regardes quel jour de la semaine c'est et tu en deduis la date du premier samedi de l'année.
    Ensuite il ne te reste plus qu'a boucler de 7 jours.

    Le seul piège est que le 1er janvier peut etre un dimanche.
    Pas bête comme algorithme.

    Je vais essayer de le faire ce soir dans le train en rentrant à la maison.

    Je reviens pour dire si ça fonctionne.

    Merci Sabotage.

    beegees

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmmm sinon regarde du côté de strtotime()

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo date("l", strtotime("3 Jan 2009")); // affiche "Saturday"
    Je ne sais pas si dans ton cas ça te sera utile tel quel, mais comme ceci (couplé à la réponse de sabotage)


    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
    <?php
    $start_day = 3;
    $year = date("Y"); // au cas où tu voudrais ceux d'une autre année ^^
    $date_base = $year."-01-".sprintf("%02d", $start_day); // Car comme tu l'as dit, le 3 janvier est le premier samedi de l'année :)
    $curr_date = $year."01".sprintf("%02d", $start_day);
    $max_date = $year."1231";
     
    for( $i=0; $curr_date <= $max_date ; $i++) {
    	$curr_date = date("Ymd", strtotime($date_base." +".($i*7)." days"));
    	if ($curr_date <= $max_date) { // j'ajoute un test ici pour ne pas dépasser l'année en cours. Sinon il va un pas trop loin :(
    		echo date("l, Y-m-d", strtotime($date_base." +".($i*7)." days"))."<br />";
    	}
    }
    /* OUTPUT 
    Saturday, 2009-01-03
    Saturday, 2009-01-10
    Saturday, 2009-01-17
    Saturday, 2009-01-24
    Saturday, 2009-01-31
    Saturday, 2009-02-07
    Saturday, 2009-02-14
    Saturday, 2009-02-21
    Saturday, 2009-02-28
    Saturday, 2009-03-07
    Saturday, 2009-03-14
    Saturday, 2009-03-21
    Saturday, 2009-03-28
    Saturday, 2009-04-04
    Saturday, 2009-04-11
    Saturday, 2009-04-18
    Saturday, 2009-04-25
    Saturday, 2009-05-02
    Saturday, 2009-05-09
    Saturday, 2009-05-16
    Saturday, 2009-05-23
    Saturday, 2009-05-30
    Saturday, 2009-06-06
    Saturday, 2009-06-13
    Saturday, 2009-06-20
    Saturday, 2009-06-27
    Saturday, 2009-07-04
    Saturday, 2009-07-11
    Saturday, 2009-07-18
    Saturday, 2009-07-25
    Saturday, 2009-08-01
    Saturday, 2009-08-08
    Saturday, 2009-08-15
    Saturday, 2009-08-22
    Saturday, 2009-08-29
    Saturday, 2009-09-05
    Saturday, 2009-09-12
    Saturday, 2009-09-19
    Saturday, 2009-09-26
    Saturday, 2009-10-03
    Saturday, 2009-10-10
    Saturday, 2009-10-17
    Saturday, 2009-10-24
    Saturday, 2009-10-31
    Saturday, 2009-11-07
    Saturday, 2009-11-14
    Saturday, 2009-11-21
    Saturday, 2009-11-28
    Saturday, 2009-12-05
    Saturday, 2009-12-12
    Saturday, 2009-12-19
    Saturday, 2009-12-26
    
    */
    ?>

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Le seul piège est que le 1er janvier peut etre un dimanche.
    Il n'y a pas de piège, car si le 1er janvier est un vendredi, samedi ou dimanche, il se trouve dans la dernière semaine de l'année précédente. Le 1er samedi est donc le samedi de la semaine suivante.
    Personnellement, je chercherais plutôt la date du lundi de la semaine N° 1 :
    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
    <?php
      function datePremierLundi($annee)
      {
        //-- détermination de la date du lundi de la semaine N° 1 ------------------
        $laDate = new DateTime($annee . '-01-00');
        //-- N° de semaine du 1er lundi de janvier ---------------------------------
        $laDate -> modify('first monday');
        //-- si la semaine du 1er lundi est la semaine N° 1, c'est bon -------------
        //-- sinon, c'est le lundi précédent ---------------------------------------
        if ($laDate -> format('W') != '01')
        {
          $laDate -> modify('last monday');
        }
        return $laDate -> format('Y-m-d');
      } 
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de piège, car si le 1er janvier est un vendredi, samedi ou dimanche, il se trouve dans la dernière semaine de l'année précédente. Le 1er samedi est donc le samedi de la semaine suivante.
    On n'a pas parlé de numero de semaine.
    Pour moi si le 1er janvier est un samedi, c'est le premier samedi de l'année.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Afficher des liens dans les erreurs vers les classes
    Par root76 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 18/06/2009, 10h17
  2. Afficher le texte avant les images et les pubs
    Par topolino dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 08h33

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