Comparaison en seconde entre 2 date

Résolu
kavinski -  
 kavinski -
Bonjour, j'aimerais mettre un système d'attente de 30 seconde avant chaque envoi d'un formulaire pour éviter le flood serveur, j'ai essayé quelque trucs mais pour l'instant rien ne marche

mon code

 
  $now = new DateTime(date('Y-m-d h:i:s'));
  $last_update = new DateTime($user->last_update);
  $interval = $now->diff($last_update);
  $difference = $interval->format("%H:%I:%S"); 
  
  if($difference < time() - 30) {
  echo 'Vous devez attendre 30 secondes'; 
  } else {
  //
  }


merci a ceux qui prendront le temps de m'aider,bonne journée

EDIT : Ajout du LANGAGE dans les balises de code.

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Via strtotime() par exemple :
    $now = date('Y-m-d h:i:s');
    $last_update = $user->last_update;
    
    $diff = strtotime($now) - strtotime($last_update);
    
    if($diff < 30) {
      echo 'Vous devez attendre 30 secondes'; 
    } else {
      //
    }
    


    Via l'objet date
     $now = new DateTime(date('Y-m-d h:i:s'));
     $last_update = new DateTime($user->last_update);
    
    $diff = $now->getTimestamp() - $last_update->getTimestamp();
    
    if($diff < 30) {
      echo 'Vous devez attendre 30 secondes'; 
    } else {
      //
    }
    


    Cordialement, 
    Jordane                                                                 
    1