2009-10-10 2 views
1

Что можно получить каждую пятницу, субботу и воскресенье между двумя датами без использования объекта datetime PHP5.0.Получайте каждую пятницу, субботу и воскресенье в заданный момент времени

Из-за скорости я не хочу проходить каждую дату между 1/1 и 31/12. (на странице мне нужно рассчитать его как минимум 50 раз :) в качестве части результата.)

+0

Каждая дата преувеличено, каждые 5 дней результаты в 50 * 50 запросов .. в результате большой нагрузки на сервер, не так ли? – 2009-10-10 09:45:17

ответ

3

Хорошая новость в том, что вам не нужно проходить каждую дату, поскольку пятница всегда наступает через пять дней после воскресенья!

В любом случае, между 2000AD и 2050AD имеется примерно 18000 дней, что означает, что вы можете создать карту Date -> DayOfWeek в течение нескольких минут, которую вы можете использовать в течение следующих нескольких лет.

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); 
} 

, конечно, может быть оптимизирован, но вы получите идею

+1

Я большой поклонник Strtotime – ChronoFish

Смежные вопросы