Plateformes d'assistanceDiscussions & Opinions des Communautés
|
|
|
|
Calcul d'une Date d'expiration php/sql
Dernière réponse le 13 jan 2009 à 17:13:34 nicusjam, le 13 jan 2009 à 15:25:27Bonjour,
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
Meilleures réponses pour « calcul d'une Date d'expiration php/sql » dans :
Vérifier le format d'une date en PHP VoirIl existe plusieurs méthodes pour verifier le format d'une date en PHP, vous pouvez par exemple découper la chaîne puis tester les valeurs de chaque élément.
Plus simplement nous utiliserons les expressions régulières.
Pour valider une date au...
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
|

