2013-02-04 2 views
0

Я хочу показать на следующей неделе, если после четверга 13:00 он должен вернуться +2 недели (неделя после следующей недели). этот код отлично работает, если не в выходные дни. он дает неправильный начальный день после пятницы. что может вызвать это?php date на следующей неделе в соответствии с сегодняшним днем ​​

$current_time = strtotime('now'); 

if ($current_time < strtotime('thursday this week 13:00')) { 
    $week_start = date('d/m/Y', strtotime('this week next monday', strtotime(date('d-m-Y')))); 
    $week_end = date('d/m/Y', strtotime('next week next sunday', strtotime(date('d-m-Y')))); 
} else { 
    if (date('N') > 5) { 
     $week_start = date('d/m/Y', strtotime('+2 week next monday', strtotime(date('d-m-Y')))); 
    } else { 
     $week_start = date('d/m/Y', strtotime('next week next monday', strtotime(date('d-m-Y')))); 
    } 

    $week_end = date('d/m/Y', strtotime('+2 week next sunday', strtotime(date('d-m-Y')))); 
} 

return $week_start." - ".$week_end; 

ответ

1

У вас есть 3 варианта, если вы говорите, что вы проверяете только дату, которая должна быть до или после четверга 13:00.

Кажется, что +2 week next monday должен быть next week next monday, в то время как линия, которая читает next week next monday не вероятно, никогда не выполняются.

код также может быть упрощена следующим образом:

if ($current_time < strtotime('thursday this week 13:00')){ 
    $week_start = strtotime('monday next week'); 
}else{ 
    $week_start = strtotime('monday +1 week'); 
} 

$week_end = strtotime('next sunday', $week_start); 

return date("Y/m/d", $week_start)." - ".date("Y/m/d", $week_end); 
Смежные вопросы