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 :

Comparer par rapport à plusieurs bornes la présence d'une date


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 Comparer par rapport à plusieurs bornes la présence d'une date
    Bonjour à tous,

    Je voudrais juste que vous me mettiez sur une piste sans me donner une solution complète :

    Je sélectionne des bornes (date de début et date de fin) de stage d'étudiants.

    Je vais donc avoir un résultat en tableau du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Array ( [0] => 2013-03-07 2013-03-27 [1] => 2013-03-07 2013-03-31 [2] => 2013-04-01 2013-04-30 [3] => 2013-03-07 2013-03-13 [4] => 2013-03-07 2013-03-28 [5] => 2013-03-01 2013-03-31 )
    J'aurai à un certain moment à vérifier qu'une date précise ne soit pas comprise entre une ces nombreuses dates ci-dessus.

    Auriez-vous une idée svp ?

    Merci d'avance.

    bee

  2. #2
    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 : 48
    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,

    Tu transformes chaque date texte en date avec DateTime() et tu fais tes comparaisons.

  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
    Salut,

    Merci pour ta réponse.

    Je dois donc utiliser mketime ?

    Est-il préférable de séparer les bornes dans l'array ?

    bee

  4. #4
    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 : 48
    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
    est ce que je t'ai parlé de mktime ?
    Je t'ai parlé de bien plus pratique : DateTime()
    Et pour faire tes comparaisons, tu devras avoir chaque date texte transformée en date donc oui, tu devras les séparer

  5. #5
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Points : 808
    Points
    808
    Par défaut
    Ben, c'est simple... tu calcules le timestamp de tes dates et tu les compares entre eux... élémentaire...

  6. #6
    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 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Est-il préférable de séparer les bornes dans l'array ?
    Pourquoi ne pas faire plutôt un array associatif de ce type ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $dates[0]['deb']='2013-03-21';
    $dates[0]['fin']='2013-03-24';
    $dates[1]['deb']='2013-04-21';
    $dates[1]['fin']='2013-04-24';
    Si tu conserves ton tableau peu pratique, il faut que tu fasses un explode sur l'espace à chaque ligne... bof... C'est jamais terrible de mélanger les informations.

  7. #7
    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
    J'ai finalement résolu mon problème, je remercie OK.Idriss sur le chat et les autres participants sur le forum pour m'avoir mis sur une piste :

    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
     
    function check_in_range($date_from_user, $arr_et)
      {
        // Convert to timestamp
        $user_ts = strtotime($date_from_user);
        $arr_dates_stages = array();
     
        foreach($arr_et as $array)
        {
           if($user_ts >= $array["debut"] && $user_ts <=  $array['fin'])
          {
              $arr_dates_stages[] = array(
              //je transforme le timestamp en date avec le format se trouvant dans la bd
              'date_stage' => date('Y-m-d', $user_ts),
              'nom_et' => $array['nom_et']
              );
          }
        }
     
        return $arr_dates_stages;   
      }
    ?>
    J'appelle ma fonction comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arr = check_in_range($date_from_user, $arr_et_ULB);
    Je l'utilise ensuite comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($arr as $array)
                {
                   if($l_id == $array['date_stage'])
                   {
                      $retour .= ' class="et_ul" '; //met ma case en bleu
                   }
                }
    Et j'obtiens le résultat escompté.

    J'ai donc utilisé les timestamps en les comparants. Une fois qu'une date entre dans le min et le max, je la retransforme avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'date_stage' => date('Y-m-d', $user_ts),
    avant de l'ajouter dans le tableau associatif.

    Bonne soirée et merci à tous les participants de ce poste.

    bee

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

Discussions similaires

  1. Choix uniquement par rapport à plusieurs lignes
    Par Oliv53 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 25/01/2015, 10h37
  2. [MySQL-5.5] Comparer par rapport à la date d'aujourd'hui
    Par hiraku79 dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/02/2014, 14h23
  3. [VxiR2] Indicateur conditionné par la présence d'une date dans la sélection
    Par ouistitis dans le forum Designer
    Réponses: 5
    Dernier message: 09/06/2009, 17h43
  4. [SQL] UPDATE par rapport à plusieurs tables
    Par Vinuto dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 12/10/2007, 10h26
  5. Controler la présence d'une date
    Par edonis dans le forum IHM
    Réponses: 2
    Dernier message: 26/07/2007, 15h41

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