Bonjour à toutes et à tous,
Bon ce sujet dois être connu mais j'ai passée la matinnée sur google sans trouver quelque chose de fiable.
Je dois supprimer des données qui ont plus de 6 mois d'ancienneté dans la base.
$result['ordre'] //date stokée dans la base de donnée avec un datetime.
time() //récupère la date du jour
$diff = strtotime($result['ordre'])-time(); //retourne le nombre de seconde entre la date du jour et la date dans la base.
$delais = 15 778 463 ;
Ce que je voudrais faire c'est comparer le nombre de secondes $diff à $delais qui est le nombre de secondes qui s'écoulent en 6 mois
$diff = strtotime($result['ordre'])-time();
if($diff > $delais){
/* action à effectuer*/
}
Qu'en pensez-vous ?
La réflexion est bonne.
Tu peux tester les dates sous forme d'objet DateTime sinon :
$dateMin = new DateTime();
$dateMin->modify('-6 month');
$dateBDD = new DateTime($result['ordre']);
if($dateBDD < $dateMin) {
// Supprimer
}
Je suis pas certains que l'ajout/suppression de mois via modify() soit conseillé donc à tester.
Par contre, tu récupère l'intégralité de tes données et tu test ensuite en PHP la date pour savoir si tu dois supprimer ou non ?
Si oui, il serait plus simple de directement supprimer en SQL. (edit: Comme le dit @Martin)
Hello pourquoi ne pas le faire en sql directement ? Ou ton where serait :
DATE_SUB(NOW() , INTERVAL 6 MONTH)
Merci ça fonctionne
oui j'aurais pu le faire en sql directement mais pour diverses raisons je ne veux pas automatiser les suppressions
Merci à vous deux