2009-10-10 6 views
1

Quel est un moyen facile d'obtenir tous les vendredi, samedi et dimanche entre deux dates, sans utiliser l'objet datetime de PHP5.0.Obtenez tous les vendredis, samedis et dimanches dans un laps de temps donné

En raison de la vitesse, je ne veux pas traverser toutes les dates entre 1/1 et 31/12. (par page, je dois le calculer au moins 50 fois :) dans le cadre d'une vue des résultats.)

+0

Chaque jour est surfait, tous les 5 jours les résultats dans 50 * 50 requêtes .. résultant dans une grande charge du serveur, droit? –

Répondre

3

Bonne nouvelle: vous n'avez pas à parcourir toutes les dates car le vendredi arrive toujours cinq jours après dimanche! De toute façon, il y a environ 18000 jours entre 2000AD et 2050AD, ce qui signifie que vous pouvez construire vous-même un mappage Date -> DayOfWeek en quelques minutes, que vous pourrez réutiliser pour les prochaines années à venir.

13
$start = strtotime("today"); // your start/end dates here 
$end = strtotime("today + 1 years"); 

$friday = strtotime("friday", $start); 
while($friday <= $end) { 
    echo "fri=", date("d m Y", $friday), "\n"; 
    echo "sat=", date("d m Y", strtotime("+1 days", $friday)), "\n";  
    echo "sun=", date("d m Y", strtotime("+2 days", $friday)), "\n\n";  
    $friday = strtotime("+1 weeks", $friday); 
} 

peut sûrement être optimisé, mais vous obtenez l'idée

+1

Je suis un grand fan de Strtotime – ChronoFish

Questions connexes