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 :

Comparaison de date / soustraire 1 heure


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut Comparaison de date / soustraire 1 heure
    Bonjour,

    J'ai un problème pour vérifier des données, en effet je souhaite que les personne ne peuvent poster de commentaires que toute les 1 heure.

    Alors j'ai mis une condition, mais je n'arrive pas si ca fait moins d'1 heure qu'un commentaire a était posté alors ils doivent attendre.

    Edit :

    J'ai un peu avancé mais cela ne fonctionne pas encore

    Voici le petit bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $dateactuelle = date('Y/m/d H:i:s');
    echo $dateactuelle ;
     
    $temps =  3600;
    $datemoins1heure = date('$heurederniercommentaire[0]', time() - $temps);
    echo $datemoins1heure;
    $heurederniercommentaire[0] viens d'une requête SQL ou je sélectionne la date du dernier commentaire.

    Mais cela ne fonctionne pas
    Merci de votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 141
    Points : 92
    Points
    92
    Par défaut
    regarde la documentation de la fonction date, ton second paramètre est correct mais pas le premier.
    Tu dois non pas y mettre une date mais un format de date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $dateactuelle = date('Y/m/d H:i:s');
    echo $dateactuelle ;
     
    /* Récupération de ta date et transformation en timestamp */
    $dateDeMaBase = $monObjet->maDate;
    $datemoins1heure = mktime(substr($dateDeMaBase, .., ..) - 1, substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..));
    $datemoins1heure = date('Y/m/d H:i:s', $datemoins1heure);
    echo $datemoins1heure;
    tu transformes ta date en timestamp auquel tu enlève 1 heure (1er paramètre de la fonction mktime.

    Et tu le repasse ensuite à ta fonction date.
    Il est aussi possible d'enlever 3600 seconde dans la fonction date comme tu l'as fait, au choix ...

    code à tester je l'ai fait de tête

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Points : 39
    Points
    39
    Par défaut
    Salut Cedrik

    Merci de ta réponse,

    Cependant je ne comprend pas cette partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datemoins1heure = mktime(substr($dateDeMaBase, .., ..) - 1, substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..), substr($dateDeMaBase, .., ..));

  4. #4
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    En général, les fontions de dates et heures des SGBD sont priviligées.

    tu oeux donc utiliser la fonction DATE_SUB de MySQL

    Exemple d'utilisation :

    DATE_SUB(NOW(), INTERVAL 3600 SECOND)

    Tu auras une heure avant l'heure actuelle.

    Tu peux alors formuler ta requête sous la forme

    Select .... FROM commentaires WHERE heure_comm > DATE_SUB(NOW(), INTERVAL 3600 SECOND) LIMIT 1;
    C'est en faisant n'importe quoi qu'on devient n'importe qui

Discussions similaires

  1. [Flex3] Comparaison de dates ignorant les heures, minutes etc
    Par karami dans le forum Flex
    Réponses: 1
    Dernier message: 03/06/2011, 10h06
  2. [SQL SERVER / VBDOTNET] comparaison de date/heure
    Par t1marlartiste dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2007, 09h51
  3. [Dates] Soustraire une heure
    Par covin85 dans le forum Langage
    Réponses: 7
    Dernier message: 02/10/2006, 19h55
  4. [Dates] soustraire deux dates et heures
    Par Hayabusa dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2006, 22h18
  5. [DEBUTANT]Comparaison sur date et heure
    Par tripper.dim dans le forum Oracle
    Réponses: 15
    Dernier message: 15/11/2005, 18h25

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