Calcul d'une Date d'expiration php/sql

Résolu/Fermé
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 - 13 janv. 2009 à 15:25
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 - 13 janv. 2009 à 17:13
Bonjour,
voici mon probleme:
j'extraie une date de ma table ($date_depot_annonce) et la retourne sans soucis.
Le principe de ce que je cherche à faire :
A partir de cette date de depot l'annonce a une durée de vie de 3 mois, je souhaite afficher le nombre de jours restant et qu'au bout de trois mois (ou 90 jours) elle soit effacée.
avec un truc du style : if $date_depot_candidature>90jours {req delete;}else { echo"reste".$jours."jours avant delete";}
Et je galère avec timestamp et mktime. Pô facile !
Voici une portion de code, si ca vous parle je suis preneur de vos avis !!!!

//Ici la date sort au format sql et je la met au format francais avec fonction php "anbafey"
$date_depot_candidature=anbafey_date_format_francais(($ligne->date_depot_candidature));;												
							
$timestamp_now = mktime(0, 0, 0, date("d"), date("m"), date("Y"));
$now = date("d-m-Y", $timestamp_now);
$date1 = $date_depot_candidature; 
$date2 = $now;
							
$nbre_jours= abs($date1-$date2);
echo $nbre_jours."jours/90<br>"; 
//Extraction des données
print_r(list($jour1, $mois1, $annee1) = explode('-', $date1)."<br>"); 
print_r(list($jour2, $mois2, $annee2) = explode('-', $date2)."<br>");

//Calcul des timestamp
$timestamp1 = mktime(0,0,0,$mois1,$jour1,$annee1); 
$timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2); 
 echo abs($timestamp2 - $timestamp1)/86400; //Affichage du nombre de jours


Merci d'avance pour vos reflexions !!! Nicus

2 réponses

nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 11
13 janv. 2009 à 17:13
Bon apres brainstorming je vous livre un script qui, adapté; me donne le resultat escompté.
<?php
			
////debut
// recupere les informations de la date de depot -> 
// Ici la date est au format anglais en sortie sql et remise en format francais
// ---------------------------------------------------------- 
$id_candidature_aj=$ligne->id_candidature;
$date_depot_candidature=anbafey_date_format_francais(($ligne->date_depot_candidature));
//echo "date depot :".$date_depot_candidature."<br>";
//ici decoupage de la date 
list($jour1, $mois1, $annee1) = explode('-', $date_depot_candidature);

$mois_depot = $mois1; //recupere le mois en 1er car format date=date("m-d-Y")
$jours_depot = $jour1; //recupere le jour 
$annee_depot = $annee1; //recupere l annee  
// ---------------------------------------------------------- 
// fin recuperation des informations de la date donnée 
// recupere les informations de la date d'aujourdhui 
// ---------------------------------------------------------- 
$temps = time(); 
$date = getdate($temps); 
$mois_expiration = $date[mon]; //recupere le mois 
$jours_expiration = $date[mday]; //recupere le jour 
$annee_expiration = $date[year]; //recupere l annee 
// ---------------------------------------------------------- 
// fin recuperation des informations de la date d'aujourdhui 
$Date_depot = mktime( 0, 0, 0, $mois_depot, $jours_depot, $annee_depot ); // retourne le timestamp UNIX de la date 
$Date_expiration = mktime( 0, 0, 0, $mois_expiration, $jours_expiration, $annee_expiration ); // retourne le timestamp UNIX de la date 
// ---------------------------------------------------------- 
$ecartjour = ($Date_expiration - $Date_depot) / (60*60*24); // Calcul les secondes, minutes et heures donc lecart en jours entre les 2 dates 
// ---------------------------------------------------------- 
// print "Aujourdhui le: $jours_expiration - $mois_expiration - $annee_expiration "; // Retourne la date daujourdhui 
// print "<br>"; // retourne 1 retour a la ligne 
 if (abs(90-$ecartjour)<90){
print abs(90-$ecartjour) ." jours avant Delete";} 
else{$sql_candidature_del=mysql_query("DELETE FROM tb_accastillage_candidature WHERE id_candidature='$id_candidature_aj';") or die("*Requête impossible !");} // Retourne le nombre de jours entre les 2 dates 
//fin 

8
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 11
13 janv. 2009 à 15:56
Up !!
je comprend les dates c'est prise de tête mais personne pour donner une piste ? Merci !
1