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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Calendrier] Affichage si un mois comporte 5 vendredis


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut [Calendrier] Affichage si un mois comporte 5 vendredis
    Bonjour à tous et toutes

    Je suis en train de faire une page relativement simple qui consiste à afficher un événement chaque vendredi.
    Tous les 1ers vendredi du mois ---->Evenement 1
    Tous les 2emes vendredi du mois ---->Evenement 2
    Tous les 3emes vendredi du mois ---->Evenement 3
    Tous les 4emes vendredi du mois ---->Evenement 4
    Et ca recommence le mois suivant, donc c'est purement statique.

    Rien de bien compliqué, c'est juste du HTML avec l'affichage d'un visuel

    Mais..... il y a des mois avec 5 vendredis comme celui d'août par exemple, je voudrai savoir si il y a une fonction qui pourrait me permettre d'afficher un visuel que si il y a 5 jours le mois considéré....


    Merci à vous tous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    vous pouvez tester cela avec la fonction https://secure.php.net/date.
    tester le jour de la semaine des jours 29, 30 et 31 du mois, cela correspond à des jours avec 5 fois le jours de le semaine dans le mois.

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Et ca recommence le mois suivant, donc c'est purement statique.
    Bonjour Bernard... Tu peux nous montrer ton code ? C'est vrai que si c'est du HTML purement statique, ça va vite être faux.
    Il va te falloir quelques balises PHP pas bien méchantes. Mais il faut qu'on parte de ton HTML pour t'aider.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    un petit script :
    Code php : 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
    <?php
    for( $mois=1; $mois<=12; $mois++ )
    {
    	$laDate = mktime(0, 0, 0, $mois, 1, date('Y'));
    	echo date( 'm/Y', $laDate).' : '.count_friday( $laDate ).' vendredis<br />';
    }
    function count_friday( $laDate )
    {
    	$count = 0;
    	$leMois = date('m', $laDate);
    	$lannee = date('Y', $laDate);
    	$nbre_jours = date('t', $laDate);
    	for( $jour=1; $jour<=$nbre_jours; $jour++ )
    	{
    		$date = mktime(0, 0, 0, $leMois, $jour, $lannee);
    		if( date('N', $date) == 5 ) // 1=lundi - 7=dimanche (5=vendredi)
    		{
    			$count++;
    		}
    	}
    	return $count;
    }
    ?>
    Renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    01/2018 : 4 vendredis
    02/2018 : 4 vendredis
    03/2018 : 5 vendredis
    04/2018 : 4 vendredis
    05/2018 : 4 vendredis
    06/2018 : 5 vendredis
    07/2018 : 4 vendredis
    08/2018 : 5 vendredis
    09/2018 : 4 vendredis
    10/2018 : 4 vendredis
    11/2018 : 5 vendredis
    12/2018 : 4 vendredis

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    en version objet cela donnerait quelque chose dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $count = array_fill_keys(range(1, 12), 0);
    $dates = new DatePeriod(new DateTime('first friday of january this year'), new DateInterval('P7D'), new DateTime('2018-12-31'));
    foreach ($dates as $d) {
        ++$count[$d->format('n')];
    }

Discussions similaires

  1. [Dates] affichage encodage du mois en court
    Par dunbar dans le forum Langage
    Réponses: 1
    Dernier message: 17/08/2006, 12h51
  2. [Conception] Calendrier, affichage d'évènement
    Par grunk dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/07/2006, 11h34
  3. Affichage selon les Mois/Années
    Par cnguyen dans le forum Oracle
    Réponses: 5
    Dernier message: 05/07/2006, 11h55
  4. [Dates] affichage d'un mois en texte et francais
    Par dédéf dans le forum Langage
    Réponses: 11
    Dernier message: 30/05/2006, 16h09
  5. [Débutant]calendrier: affichage par 3 mois
    Par illyana dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/05/2006, 03h07

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