PHP - Comparaison de dates
Fermé
boss183
Messages postés
181
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
7 octobre 2011
-
Modifié par boss183 le 19/05/2011 à 16:16
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 20 mai 2011 à 09:50
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 20 mai 2011 à 09:50
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
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
A voir également:
- PHP - Comparaison de dates
- Comparaison million milliard - Accueil - Technologies
- Easy php - Télécharger - Divers Web & Internet
- Nombre de jours entre deux dates excel - Guide
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Airpods 3 date de sortie - Guide
2 réponses
chrij
Messages postés
115
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
20 mai 2011
49
19 mai 2011 à 17:14
19 mai 2011 à 17:14
Bonjour,
je n'ai pas de quoi faire du php sous la main pour vérifier si ça fonctionne mais voilà quelques idées pour résoudre le problème :
1.convertir un string en date : https://www.php.net/manual/fr/datetime.createfromformat.php
2. ajouter des mois à une date : https://www.php.net/manual/fr/function.date-add.php
3. comparer les dates : on va comparer les timestamp, il faut donc récupérer celui que l'on vient de calculer : $timestamp = mktime(heures, minutes, secondes, mois, jour, année);
je n'ai pas de quoi faire du php sous la main pour vérifier si ça fonctionne mais voilà quelques idées pour résoudre le problème :
1.convertir un string en date : https://www.php.net/manual/fr/datetime.createfromformat.php
2. ajouter des mois à une date : https://www.php.net/manual/fr/function.date-add.php
3. comparer les dates : on va comparer les timestamp, il faut donc récupérer celui que l'on vient de calculer : $timestamp = mktime(heures, minutes, secondes, mois, jour, année);
boss183
Messages postés
181
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
7 octobre 2011
17
Modifié par boss183 le 20/05/2011 à 09:51
Modifié par boss183 le 20/05/2011 à 09:51
Voici la solution :
$datedeb = '2011-04-18'; // Date de début, qui provient de la base $duree = 6; // Durée du contrat en mois // Conversion de la date de début en unix timestamp list($y,$m,$d) = explode('-', $datedeb); $utdb = mktime(12,0,0,$m,$d,$y); // Calcul de la fin du contrat: $utdf = strtotime("+".$duree." months", $utdb); // On prend la date du jour à 12h, pour être dans le même contexte horaire que le contrat: $now = mktime(12, 0, 0, date('m'), date('d'), date('Y')); // Comparaison des dates: if (strtotime("+2 months", $now) > $utdf) { echo "le contrat va bientot se terminer"; } else { echo "le contrat ne se termine pas bientôt"; }