2010-02-18 4 views
2
$startDate = 20130201; 
$date  = 20130505; 
$aDates = $this->getDates($startDate, $date); 

public function getDates($startDate, $date) { 
    $tmpStartDate = date("Ymd", strtotime($startDate.'+1 Day')); 
    $tmpEndDate = date("Ymd", strtotime($tmpStartDate.'+1 Month')); 

    if($date >= $tmpStartDate && $date <= $tmpEndDate) { 
     //return array('startDate' => $tmpStartDate, 'endDate' => $tmpEndDate); 
    } else { 
     $this->getDates($tmpEndDate, $date); 
    } 
} 
+1

, что он должен делать? что он делает вместо этого? он бросает какие-либо ошибки? или исключения? – Marius

+0

Нескомментированный бит должен быть раскоментирован и до сих пор не работает – 2010-02-18 11:15:42

+0

Потому что он не знает, что он должен делать. Хорошо, серьезно: что вы пытаетесь достичь и каков (фиктивный) результат, созданный вашей функцией? – soulmerge

ответ

8

Если вызывается} else {, из рекурсивного вызова ничего не возвращается.

Попробуйте раскомментировать вашу комментируемой строке и добавление «возврат» в начале этой статьи еще:

return $this->getDates($tmpEndDate, $date); 
+0

Конечно. Я не видел этого вообще: P – Skilldrick

+0

Черт, похоже, сработало. Забыл, вам нужно вернуться к себе. – 2010-02-18 11:29:35

+2

Cool - @ user275074 Если это сработало для вас, отметьте его как ответ. –

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