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] Transformer "tous les deuxièmes mardis du mois" en dates précises


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut [Dates] Transformer "tous les deuxièmes mardis du mois" en dates précises
    Bonjour,

    j'essaie de mettre en place un calendrier référençant les activités proposées par différentes structures.
    Chaque structure peut proposer plusieurs activités, soit à date fixe (le 18 novembre par exemple) soit chaque premier mardi du mois ou tous les jeudis ou le deuxième mercredi et jeudi... en remplissant un formulaire (pour l'instant un champ date pour les dates fixes, et un textarea quand c'est un rythme plus qu'une date

    Je voudrais que toutes ces activités puissent être affichées comme pour un calendrier : ce mois ci il y a mardi X ceci, mercredi XX cela, donc prendre en compte et les dates données par un "rythme" et les dates données par une date précise (ca, ca va).

    Est-ce que quelqu'un a déjà été confronté à cela et saurait comment faire pour faire de "chaque premier mardi" des dates précises ?

    merci pour votre aide,

  2. #2
    Membre actif Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Points : 296
    Points
    296
    Par défaut
    une boucle avec mktime() je crois

  3. #3
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    salut

    un exemple pour trouver le deuxieme mardi d'un mois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // on crée le premier du mois
    $date = '01/xx/xxxx';
    list($jo,$mo,$an) = explode('/',$date);
    
    //tant qu'on trouve pas un mardi
    while(date("w",mktime(0,0,0,$mo,$jo,$an)) != 2)
    {
    	$date=date("d/m/Y", mktime(0,0,0,$mo,$jo+1,$an));
    	list($jo,$mo,$an) = explode('/',$date);
    }
    
    //mardi suivant
    $deuxieme_mardi = date("d/m/Y", mktime(0,0,0,$mo,$jo+7,$an));
    a+

  4. #4
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    Merci,

    je vais voir ca ce week end.

    peux tu juste m'expliquer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(date("w",mktime(0,0,0,$mo,$jo,$an)) != 2)
    Je ne comprends pas la logique


    Merci pour ton aide


    Caroline

  5. #5
    Membre actif Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Points : 296
    Points
    296
    Par défaut
    il continue chaque fois que ça ne renvoit pas 2 (mardi)

  6. #6
    Membre régulier Avatar de carelha
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 168
    Points : 109
    Points
    109
    Par défaut
    Merci beaucoup.

    Je mets pour l'instant le post comme résolu, et je reviendrai après avoir testé.

  7. #7
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Points : 287
    Points
    287
    Par défaut
    Citation Envoyé par frol
    il continue chaque fois que ça ne renvoit pas 2 (mardi)
    c'est exactement cela

    Dimanche 0
    Lundi 1
    Mardi 2
    Mercredi 3
    Jeudi 4
    Vendredi 5
    Samedi 6

  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
    moi je verrais plutôt la boucle comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    while(date("w",mktime(0,0,0,$mo,$jo,$an)) != 2)
    {
    $date=date("d/m/Y", mktime(0,0,0,$mo,$jo,$an));
    list($jo,$mo,$an) = explode('/',$date);
    $jo++
    }
    enfin chacun safacon de voir


    D'autre part, je recommande vivement de stocker les explode dans une variable tout bête, qui se transforme en tableau,

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $toto=explode("/",$date);
    ensuite, il suffit de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for ($i=0;$i<count($toto);$i++)
    {echo $toto[$i] ; }
    C'est surtout une question de dynamisme, vous pourrez stocker autant de variable que vous voulez avec contrairement à "list"

    Enfin là c'était pas très utile, mais bon

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/07/2015, 10h55
  2. [XL-2007] Exporter des données tous les premiers mardi du mois
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2011, 13h02
  3. Réponses: 3
    Dernier message: 24/01/2011, 01h11
  4. Ensemble de date, pour TOUS les jours d'un mois
    Par mensoif dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/10/2009, 12h51
  5. Tous les jours de l'année au format date
    Par piotrr dans le forum C#
    Réponses: 10
    Dernier message: 12/12/2008, 19h17

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