2013-09-25 3 views
-1

Есть ли способ установить последние 40 воскресений в массив с php? Я не понимаю это сейчас.PHP Диапазон массивов дат за последние 40 дней

попытался следующие

$week_array = array(); 
$last_s = date('Y-m-d',strtotime('last sunday')); 
array_push($week_array, $last_s);  
for ($i = 0; $i <= 40; $i++) { 
    $last_s = $last_s - 7; 
    array_push($week_array, $last_s); 
} 
+0

Да. Покажите нам, что вы пробовали, а затем мы поможем вам. –

+0

Что вы пробовали? В меню флажка: _ «Вопросы, запрашивающие код ***, должны демонстрировать минимальное понимание проблемы, которая будет решена ***. Включите попытки решения, почему они не сработали и ожидаемые результаты. См. Также: [Переполнение стека контрольный список вопросов] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist). "_ – War10ck

+0

Связанный вопрос уже здесь: http://stackoverflow.com/questions/336127/calculate- рабочие дни –

ответ

1

должно работать:

<?php 
for ($i = 0; $i < 40 ; $i++){ 
    $week = 3600*24*7; 
    $dates[] = date("Y-m-d",strtotime(date("Y-m-d",strtotime("last Sunday")))-$week*$i) ; 

} 
print_r($dates); 
?> 

see example

0

Да, конечно. Используйте этот код

$sundays = array(); 

// $prev is auxillary variable which holds the time 
// from which we are searching the next last Sunday 
$prev = time(); 

for($i = 0; $i < 40; $i++) 
{ 
    $prev = strtotime('last Sunday', $prev); // 
    $sundays[] = $prev; 
} 
+0

Что делать, если сегодня воскресенье? –

+0

@JohnConde Вы можете легко инициализировать '$ prev' в следующее воскресенье. – zavg

1
<?php 
$sundays = array(); 
$now = new DateTime(); 
if ($now->format('l') === 'Sunday') { 
    $sundays[] = $now->format("Y-m-d"); 
} 
$dt = new DateTime('last sunday'); 
while (count($sundays) < 40) { 
    $sundays[] = $dt->format("Y-m-d"); 
    $dt->modify('-1 week'); 
} 
print_r($sundays); 

See it in action

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