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] comparaison de 2 dates sous php ?? [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Points : 82
    Points
    82
    Par défaut [Dates] comparaison de 2 dates sous php ??
    Bonjour a tous
    j'ai un ptit souci je souhaiterai comparer deux dates mais je n'ai aucune idée de la facon de le fair

    je recupere la 1ere comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $date_reelle = date('d/m/Y ');
    je recupere la 2eme comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $champs13 = $_POST['date_realisation1']; /* date_realisation1 de format (d/m/y)
    si par exemple date_reelle = 30/05/2006 et $champs13 = 12/04/2005 alors içi je veux afficher une erreur et preciser qu'on doit changer $champs13
    mais je nesais pas cmt faire aider moi svp

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    tiens, cadeau, ce petit bout de code te calcule le nombre de jours entre deux dates :

    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
    <?php
    function calcule_nbre_jours ($date1, $date2) {
     
    	$arr_date1 = explode("/", $date1);
    	$time_a_comparer1 = mktime(0, 0, 0, $arr_date1[1], $arr_date1[0], $arr_date1[2]);
     
    	$arr_date2 = explode("/", $date2);
    	$time_a_comparer2 = mktime(0, 0, 0, $arr_date2[1], $arr_date2[0], $arr_date2[2]);
     
    	$difference = $time_a_comparer1 - $time_a_comparer2;
     
    	if ($difference < 0) {
    		echo 'Il y a : ';
    		$difference = abs($difference);
    	} else {
    		echo 'Dans : ';
    	}
    	$nbre_jour = intval($difference / 86400);
    	echo $nbre_jour.' jours';
    }
     
    calcule_nbre_jours('18/02/1981', '21/02/2006');
    ?>
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre chevronné Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Points : 2 100
    Points
    2 100
    Par défaut
    if ($_GET('$date_reelle') !== $_GET('$champs13')) {

    echo "erreur";

    }

  4. #4
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_reelle == $champs13
    te pose un problème ? ^^

    à condition de faire bien attention qu'on compare bien des format strictement identique donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_reelle = date('d/m/Y');
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_reelle = date('d/m/Y ');

  5. #5
    Membre régulier Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Points : 82
    Points
    82
    Par défaut
    Oui merci beaucoup mais moi je ne veux pas compter les jours , moi je veux signaler une erreur si la date du $champs13 est anterieure a la date reelle
    c tt

  6. #6
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Il me semble que les opérateurs de comparaison fonctionnent correctement sur les dates si elles sont du type 'Y-m-d' , tu dois doit donc les convertir vers ce type avant de les comparer.

    Plus propre, tu peux les convertir en JD avec frenchtojd() avant de les comparer..

  7. #7
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    en comptant les jours, tu as juste à modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($difference < 0) {
    		echo 'Il y a : ';
    		$difference = abs($difference);
    	} else {
    		echo 'Dans : ';
    	}
    pour savoir numériquement si c'est antérieur ou postérieur ...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  8. #8
    Membre régulier Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par NoT
    Il me semble que les opérateurs de comparaison fonctionnent correctement sur les dates si elles sont du type 'Y-m-d' , tu dois doit donc les convertir vers ce type avant de les comparer.

    Plus propre, tu peux les convertir en JD avec frenchtojd() avant de les comparer..
    j'ai bien saisi ce que tu veux dire mais dis moi qd je recupere la date_reelle ou le $champs13 je les recupere sans differncier DD de MM de YYYY comment je fais pour differencier chaque champs afin d'utiliser la fonction frenchtojd() ????

  9. #9
    Membre chevronné Avatar de Nemesys
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Points : 2 100
    Points
    2 100
    Par défaut
    La technique de titoumimi est plus simple non ?

  10. #10
    Membre régulier Avatar de moonia
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 283
    Points : 82
    Points
    82
    Par défaut
    je vais l'essaye j'espere que ca va marcher

  11. #11
    NoT
    NoT est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Points : 280
    Points
    280
    Par défaut
    Tout dépend de ce que tu souhaites faire :

    Reprendre un code sans le comprendre.
    ou
    Recréer un code en le comprenant.

    Les 2 solutions reviendront au final au même, je te fais juste te poser les questions qui sont deja traité par le script de titoumimi

    j'ai bien saisi ce que tu veux dire mais dis moi qd je recupere la date_reelle ou le $champs13 je les recupere sans differncier DD de MM de YYYY comment je fais pour differencier chaque champs afin d'utiliser la fonction frenchtojd() ????
    Justement c'est le but des lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $arr_date1 = explode("/", $date1);
    	$time_a_comparer1 = mktime(0, 0, 0, $arr_date1[1], $arr_date1[0], $arr_date1[2]);
    du code de titoumimi

    tu devrais te plonger un peu dans la doc de php.net à propos de ces fonctions si elles te sont totalement inconnues.

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

Discussions similaires

  1. comparaison d'une date saisie avec la date systeme
    Par bachboucha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/06/2009, 12h31
  2. [Dates] Comparaison entre deux dates
    Par Cdic83 dans le forum Langage
    Réponses: 1
    Dernier message: 24/05/2009, 21h32
  3. [Dates] comparaison de 2 dates
    Par khamett dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2008, 10h32
  4. Réponses: 4
    Dernier message: 29/01/2008, 16h01
  5. [Dates] Comparaison entre 2 dates
    Par paradeofphp dans le forum Langage
    Réponses: 6
    Dernier message: 10/11/2006, 14h42

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