Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1564 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comparaison de dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison de dates

n°2077164
boss183
Posté le 19-05-2011 à 15:54:31  profilanswer
 

Bonjour à tous,
 
je viens vers vous car je souhaite comparer des dates et je ne vois pas trop comment coder ça. Alors je vous explique :
Je récupère dans une base de donnée la date de début d'un contrat au format aaaa-mm-jj (c'est du varchar) et la durée de ce contrat en mois, je souhaiterais obtenir la date de fin dans le même format, je ne sais pas trop comment faire "l'addition".
De plus, une fois cette date de fin de contrat obtenu, je voudrais pouvoir la "comparer" avec la date d'aujourd'hui et si cette date se situe par exemple dans moins de deux mois j'affiche un message à l'utilisateur.  
 
Pouvez-vous m'aider à coder cela ?
 
Merci d'avance


Message édité par boss183 le 19-05-2011 à 16:17:21
mood
Publicité
Posté le 19-05-2011 à 15:54:31  profilanswer
 

n°2077268
GordonF_69
Posté le 20-05-2011 à 02:23:49  profilanswer
 

Le plus simple pour moi pour additionner des dates, est de tout convertir en timestamp.
 
Plus d'info la : http://php.net/manual/fr/function.time.php

n°2077288
boss183
Posté le 20-05-2011 à 09:47:19  profilanswer
 

Voici la solution :
 

Code :
  1. $datedeb = '2011-04-18'; // Date de début, qui provient de la base
  2. $duree = 6; // Durée du contrat en mois
  3. // Conversion de la date de début en unix timestamp
  4. list($y,$m,$d) = explode('-', $datedeb);
  5. $utdb = mktime(12,0,0,$m,$d,$y);
  6. // Calcul de la fin du contrat:
  7. $utdf = strtotime("+".$duree." months", $utdb);
  8. // On prend la date du jour à 12h, pour être dans le même contexte horaire que le contrat:
  9. $now = mktime(12, 0, 0, date('m'), date('d'), date('Y'));
  10. // Comparaison des dates:
  11. if (strtotime("+2 months", $now) > $utdf)
  12. {
  13. echo "le contrat va bientot se terminer";
  14. }
  15. else
  16. {
  17. echo "le contrat ne se termine pas bientôt";
  18. }

n°2077289
rufo
Pas me confondre avec Lycos!
Posté le 20-05-2011 à 09:48:16  profilanswer
 

$Date= 'yyyy-mm-dd'; // ex : '2011-05-20'
$Timestamp = strtotime($Date);
 
Le timstamp est un entier qui contient la date + l'heure (si pas d'heure précisée, c'est 00:00:00 qui est pris. Après, tu peux effectuer les opérations que tu veux.
 
Regarde aussi la fonction date qui permet de manipuler les dates (afficher le dernier jour d'un mois, par ex).
 
$Date= date('Y-m-d'); // date du jour
echo date('t/m/Y', strtotime($Date));  // affiche le dernier jour du mois courant.
 
strtotime permet de faire des calculs sur les dates :
$Date= date('Y-m-d'); // date du jour
date('t/m/Y', strtotime("$Date +2 months" )); // ajoute 2 mois à la date courante


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comparaison de dates

 

Sujets relatifs
Comparaison entre 2 dates/algorithme PHP[VBS] Comparaison de dates (résolu)
[exel\calc]comparaison de dates ?!Pb comparaison de dates entre 2 textbox d'une form
comparaison de dates en msdosComparaison de dates sous vba
Comparaison de chaines de caractères (dates)Comparaison de dates sous VBA
Comparaison de dates sous Mysql depuis PHPcomparaison de dates
Plus de sujets relatifs à : Comparaison de dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR