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

PHP & Base de données Discussion :

comparaison de date timestamp [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut comparaison de date timestamp
    Bonjour voici mon code :

    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
     
    $erreurs = array();
    $date = date("m-d-Y");
     
    $datedebut = mktime(0, 0, 0, ($_POST['mois_debut']), $_POST['jour_debut'], $_POST['annee_debut']);
     
    $datefin = mktime(0, 0, 0, ($_POST['mois_fin']), $_POST['jour_fin'], $_POST['annee_fin']);
     
     
    if ($datedebut>$datefin){
    	$erreurs[] = 'La date de fin doit être supérieure à la date du début.';
    	}
     
    	if (strtotime($datefin)>(strtotime($date))){
    		//echo (strtotime($date));
    		$erreurs[] = 'La date de fin doit être infèrieure à la date du jour.';
    	}

    lorsque que je compare $datefin et $date il ne sont pas de meme type donc la comparaison est fausse jai essayer avec la fonction strtotime mais sa ne marche pas.

    VOus avez des idées ?

    Merci.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    il me semble que par défaut, strtotime() renvoie une date au format yyyy-mm-dd et pas mm-dd-yyyy comme dans le format ton date()

    mais d'un autre côté tu pourrais utiliser time() qui te retournera le timestamp courant

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    Je te remercie pour ta reponse.


    donc pour pouvoir comparais $datefin et $date qui est la date system

    je dois l'ecrir comme sa ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     if time( $datefin ) > $date {
    .....
    }

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    nope, regarde la premiere ligne ci-dessous

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $date = time();
     
    $datedebut = mktime(0, 0, 0, ($_POST['mois_debut']), $_POST['jour_debut'], $_POST['annee_debut']);
     
    $datefin = mktime(0, 0, 0, ($_POST['mois_fin']), $_POST['jour_fin'], $_POST['annee_fin']);
     
     
    if( $date > $datefin ) {
      // va comparer 2 timestamps ;)
    }

  5. #5
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    non tu as mal compris je pense time() te renvoi le timestamp du moment présent.

    par exemple j'écris le 24/02/2009 à 11:03 ca te renvoi le timestamp de maintenant.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    d'accord je comprend mieux !


    sa reviendrais au meme d'ecrire ceci ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $date = date("m-d-Y");
    if ($datefin>=(microtime($date))){
    		$erreurs[] = 'La date de fin doit être infèrieure à la date du jour.';
    	}
    }

  7. #7
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Attention !

    Microtime n'a pas de date en paramètre mais un booléen :

    http://fr.php.net/manual/fr/function.microtime.php

    Donc ca ne marcherais pas je crois

    Mais la proposition de darkstar123456 est la mieux selon moi !

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

Discussions similaires

  1. Comparaison 2 dates 1948-2013 par timestamp
    Par devlm dans le forum Langage
    Réponses: 5
    Dernier message: 11/01/2013, 10h15
  2. Réponses: 2
    Dernier message: 07/03/2012, 17h53
  3. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  4. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43
  5. Réponses: 4
    Dernier message: 06/02/2004, 16h23

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