2013-02-04 107 views
0

我想在下周显示,如果在周四13:00之后它应该返回+2周(下周后)。如果不是周末,这段代码工作正常。它在星期五之后给出错误的起始日。什么会造成这种情况?根据今天下周php日期

$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

即使您说您仅在周四13:00之前或之后测试日期,您的if语句也有3个分栏。

看来+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); 
相关问题