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] Travailler les dates


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut [Dates] Travailler les dates
    Bonjour,

    Je récupére

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $date_deb = $an_deb.'-'.$mois_deb.'-'.$jour_deb;
    $date_fin = $an_fin.'-'.$mois_fin.'-'.$jour_fin;
    Ma période doit etre comprise entre le 1er Octobre de l'année N et le 31 Novembre de l'année N+1.

    Comment puis je faire pour vérifier que ma période est bien dans cette période ?

    NB : J'ai déjà vérifié précédemment que $date_fin était bien supérieure ou égale à $date_deb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $timestamp_debut = mktime(0, 0, 0, str_pad($mois_deb,2,0,STR_PAD_RIGHT) , $jour_deb, $an_deb);
    $timestamp_fin = mktime(0, 0, 0, str_pad($mois_fin,2,0,STR_PAD_RIGHT) , $jour_fin, $an_fin);
     
    if($timestamp_debut <= $timestamp_fin){
     
    }

  2. #2
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Personne n'aurait une petite piste ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 11
    Par défaut
    convertis tout en timestamp (nombres de secondes écoulées depuis le 01/01/1970) grace à la fonction mktime, c'est beaucoup plus simple pour faire des opération et des comparaisons sur les dates.

  4. #4
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    salut je pense a voir trouver mais ej suis pas sur car je trouve sa trop simple

    tu rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $timestamp_anneeN = mktime("/*1 octobre de l'année N*/");
    $timestamp_anneeN+1 = mktime("/*31 novembre de l'année N+1*/" );
     
    $timestamp_debut = mktime(0, 0, 0, str_pad($mois_deb,2,0,STR_PAD_RIGHT) , $jour_deb, $an_deb);
    $timestamp_fin = mktime(0, 0, 0, str_pad($mois_fin,2,0,STR_PAD_RIGHT) , $jour_fin, $an_fin);
     
    if($timestamp_debut <= $timestamp_fin){
           if (($timestamp_anneeN<timestamp_debut && timestamp_debut<$timestamp_anneeN+1) && ($timestamp_anneeN<$timestamp_fin && $timestamp_fin<$timestamp_anneeN+1))
         {
     
         }
     
    }
    Mais je me trompe peut etre?

  5. #5
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Euh je saisp as j'ai pas tout compris la...

    et comment je recupere année N et année N+1, ca depend des dates que j'ai saisi...

  6. #6
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    sa depend c koi tes années N et N+1, forcement que tu les recupère
    soit en dur soit avec une variable, non?

  7. #7
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    mais tu fait la meme chose pour les année n et n+1 que pour ta date debut et date fin tu les converti en timestamp
    c simple non?

  8. #8
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Premiere erreur c 1er Novembre et 31 OCtobre logique

    bah en fait je récupére deux dates comme je l'ai expliqué ci dessus.

    Par exemple si je recupere
    1er Janvier 2005 et 31 Juillet 2005
    Il faut que je vérifie si c'est entre le 1er Novembre 2004 et le 31 Octobre 2005

    Si je récupére 4 Juillet 2005 et 31 Juilet 2006 il faut que je vérifie si c'est entre 1er Novembre 2004 et le 31 Octobre 2005

    Si je récupére 4 Novembre 2005 et 31 Juilet 2006 il faut que je vérifie si c'est entre 1er Novembre 2005 et le 31 Octobre 2006

    J'ai été clair ?

  9. #9
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Citation Envoyé par funckfot
    mais tu fait la meme chose pour les année n et n+1 que pour ta date debut et date fin tu les converti en timestamp
    c simple non?
    Je sais pas si c'est le fait que ce soit vendredi mais je trouve ca 15 000 fois plus compliqué que avec ma date debut et ma date fin, qui sont soit dit en passant les deux dates que je veux vérifier si elles sont dans la période.

  10. #10
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    quel sont le format de tes dates?



    et oui le timestamp et compliqué mais je t vu partir dessus, et sa marcherais je pense
    mais il me semble que ton probleme n'est pas trés compliqué quand meme

  11. #11
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    mais tu peu pas faire de calcule sur ta date debut et date fin (au fait)
    tu separe tout et tu fait des test (avec substr() au cas ou )

  12. #12
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Citation Envoyé par funckfot
    mais tu peu pas faire de calcule sur ta date debut et date fin (au fait)
    tu separe tout et tu fait des test (avec substr() au cas ou )
    Moi pas tout comprendre la.

    je recuper un jour sur deux chiffres, un mois sur deux chiffres et une année sur 4 chiffres...

  13. #13
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    ben je t dit
    tu peu tout metre en timestamp

    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
     
     
    $timestamp_anneeN = mktime(0, 0, 0, $mois_anneeN , $jour_anneeN, $anne_anneN1);
    $timestamp_anneeN1 = mktime(0, 0, 0, $mois_anneeN1 , $jour_anneeN1, $anne_anneN1);
     
    $timestamp_debut = mktime(0, 0, 0, str_pad($mois_deb,2,0,STR_PAD_RIGHT) , $jour_deb, $an_deb);
    $timestamp_fin = mktime(0, 0, 0, str_pad($mois_fin,2,0,STR_PAD_RIGHT) , $jour_fin, $an_fin);
     
    if($timestamp_debut <= $timestamp_fin){
           if (($timestamp_anneeN<timestamp_debut && timestamp_debut<$timestamp_anneeN+1) && ($timestamp_anneeN<$timestamp_fin && $timestamp_fin<$timestamp_anneeN+1))
         {
     
         }
     
    }
    ou faire des tests séparement sur tes variables (jour, mois ,année)

    je vois pas le probleme en fait!!

  14. #14
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    et mois je vois pas comment on fait ?

    comment tu definis jourN moisN et annéeN

    entre toi qui voit pas le probleme et moi qui comprend pas comment on fait c'est pas gagné...

  15. #15
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut ok
    tu fait des test avant le code que je t passé pour savoir qu'elle est la période de test ($anne_anneN=$an_deb-1; et $anne_anneN1= $an_deb) ou($anne_anneN= $an_deb et $anne_anneN1= $an_deb+1)

    mais faut fair les test avant ,c tout simple un peu fastidieux mais c tout
    et c fini je t tout donné je vai pas te faire le code non plus!!

  16. #16
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Hummm je crois que j'ai a peu pres compris on vera ca cette apres midi...

  17. #17
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    J'ai fait ça mais ca rentre toujours dans le else et jamais dans le if

    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
     
    $base = $_SESSION['base'];
    //$base contient  XX_2006 ou XX_2005 par exemple
     
    $anneeN1 = substr($base,-4);
    $jourN1 = '31';
    $moisN1 = '10';
     
    $anneeN = $anneeN1 - 1;
    $moisN = '11';
    $jourN = '01';
     
    $timestamp_anneeN = mktime(0, 0, 0, $moisN , $jourN, $anneeN);
    $timestamp_anneeN1 = mktime(0, 0, 0, $moisN1 , $jourN1, $anneeN1);
     
     
    //il faut que la période soit entre le 1er Octobre N et le 31 Novembre N-1
    if (($timestamp_anneeN <= $timestamp_debut && $timestamp_debut <= $timestamp_anneeN1) && ($timestamp_anneeN <= $timestamp_fin && $timestamp_fin <= $timestamp_anneeN1)) {
     
    }
    else{
       echo 'La période doit se trouver entre le 1er Novembre de l\'année '.$anneeN.' et le 31 Octobre de l\'année '.$anneeN1;
    }

  18. #18
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Debugage

    Début période : 01 Novembre 2005
    Date début : 1 Décembre 2005
    Date fin : 31 Juin 2006
    Fin période : 31 Octobre 2006

    $timestamp_anneeN : 1130799600
    $timestamp_debut : 1133391600
    $timestamp_fin : 1293750000
    $timestamp_anneeN1 : 1162249200

  19. #19
    Membre expérimenté Avatar de funckfot
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 221
    Par défaut
    je regarde

  20. #20
    Membre éclairé Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Par défaut
    Je comprends pas pour quoi le timestamp de fin de période est inférieur au timestamp de la date de fin alors que pour les dates c'est l'inverse....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. pb avec les date et les calendar
    Par gloglo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/04/2007, 19h21
  2. Réponses: 6
    Dernier message: 11/04/2007, 17h54
  3. Les dates dans les SGBD
    Par benny7 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 06/06/2006, 15h53
  4. [VB6]sortir toutes les dates entre deux dates
    Par AlfiQue dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/02/2006, 20h09
  5. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 10h18

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