Créer des événements récurrents en PHP

27 Mars 2014 à 00:00 Programmation

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.

0 commentaire