Traitement en fonction des dates

Eléphant du PHP | 107 Messages

08 oct. 2008, 15:03

Bonjour,

J'ai un script qui se lance tous les 5mn et qui appel un autre fichier pour effectué des traitements.


Le fichier doit être appelé tous les mois pour un abonnement de 6 mois c'est à dire qu'il doit faire le traitement un fois par mois jusqua la sixieme mois.

le probleme c'est que le script se lance tous les 5mn donc je doit faire des tests en fonctions des dates pour que le traitement soit faite/executé ou pas du genre :

selectionner premier_date_traitement
puis tester si date_aujourhui - premier_date_traitement /30 = 0 c'est à dire on est arrivé à la deuxieme mois
selectionner deuxieme_date_traitement
puis tester si date_aujourhui - deuxieme_date_traitement /30 = 0 c'est à dire
on arrivé à la troisième mois
et ainsi de suite jusqu'au sixieme mois

les dates premier_date_traitement , deuxieme_date_traitement sont enregistré dans la base de donneé

j'ai fait comme ça et merçi de me suggeré si c'est pas normal que jai ecrit :
//$premierDATEtrait est récupérer depuis la base de données
$limit=30;
$dateAjourdhui=strtotime(date("Y-m-d"));
$datePREMIERenvoi=strtotime($premierDATEtrait);
$dateDEUXIEMEenvoi=strtotime( '+' . $limit . ' days', $datePREMIERenvoi);
$dateTROISIEMEenvoi=strtotime( '+' . $limit . ' days', $dateDEUXIEMEenvoi);
$dateQAUTRIEMEenvoi=strtotime( '+' . $limit . ' days', $dateTROISIEMEenvoi);
$dateCINQUIEMEenvoi=strtotime( '+' . $limit . ' days', $dateQAUTRIEMEenvoi);
$dateSIXIEMEenvoi=strtotime( '+' . $limit . ' days', $dateCINQUIEMEenvoi);

if($dateAjourdhui == $dateDEUXIEMEenvoi || $dateAjourdhui == $dateTROISIEMEenvoi || $dateAjourdhui == $dateQAUTRIEMEenvoi || $dateAjourdhui == $dateCINQUIEMEenvoi || $dateAjourdhui == $dateSIXIEMEenvoi )
{

// traitement divers

}
merçi

ViPHP
ViPHP | 1996 Messages

09 oct. 2008, 14:13

J'ai pas tout compris mais est ce que cela peut t'aider :
<?php
$maintenant = time();

$i=1;
while ($i < 6)
{
$tab_envoi[$i] = $maintenant-($i*30*24*60*60); //si c'est tous les trente jours
$i++;
}

if (!in_array($maintenant,$tab_envoi) //execution
?>
Qu'en penses tu ?
C'est a la seconde près mais tu peux exécuter le même principe avec ton strtotime(date(...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr