PHP - Comparaison de dates
                    
        
     
             
                    boss183
    
        
    
                    Messages postés
            
                
     
             
            187
        
            
                                    Statut
            Membre
                    
                -
                                     
boss183 Messages postés 187 Statut Membre -
        boss183 Messages postés 187 Statut Membre -
        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
- Nombre de jours entre deux dates excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
2 réponses
                        
                    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);
                        
                    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"; 
} 
                
                