Créer des événements récurrents en PHP
Je ne publierai plus rien sur ce blog. Un nouveau blog existe maintenant. Il se nomme Hardly Smart.
Vous pourrez y retrouver des astuces plus larges sur l'informatique ainsi que mes anciens billets de blog.
Je vous souhaite une bonne lecture sur Hardly Smart.
Aujourd'hui je viens d'être confronté à un problème, comment créer des événements récurrents en PHP mais avec la version 5.2 de PHP ?
Ce problème ne se serai jamais posé si j'avais eu un serveur sous PHP 5.3 ou plus. Et oui car avec l'arrivée de la version 5.3, une nouvelle classe a fait son apparition : DatePeriod()
Cette classe permet justement comme son nom l'indique de créer des périodes avec des dates. Elle n'utilise qu'un contructeur qui s'utilise comme ceci :
public __construct ( DateTime $start , DateInterval $interval , int $recurrences [, int $options ] ) public __construct ( DateTime $start , DateInterval $interval , DateTime $end [, int $options ] ) public __construct ( string $isostr [, int $options ] )
Je vais utiliser la mathode 2, qui est la plus appropriée pour mon cas. J'ai besoin de créer des évévenements toutes les semaines à partir d'aujourd'hui et sur 2 mois. Je vous laisse regarder le son code source.
Source
PHP 5.2 :
// Première date
$begin = new DateTime('2014-03-27');
// Date de fin
$end = new DateTime('2014-05-27');
while($begin < $end) {
$period[] = $begin->format('d/m/Y');
$begin->modify('+1 week');
}
foreach($period as $p){
echo $p . "
";
}
PHP 5.3 :
// Première date
$begin = new DateTime('2014-03-27');
// Date de fin
$end = new DateTime('2014-05-27');
// Récurence
// Plus 1 semaine
$interval = new DateInterval('P1W');
$daterange = new DatePeriod($begin, $interval ,$end);
foreach($daterange as $date){
echo $date->format("d/m/Y") . "
";
}
Articles liés
Les commentaires ont été désactivés.