2012-10-11 45 views
1

我試圖確定星期一到星期天的PHP範圍。我能夠計算週數,但我無法獲得每週正確的結束周範圍。如何使用PHP確定周範圍?

這是我到目前爲止有:

$start_date = 1337621424; 
$end_date = 1349964545; 

$start_week = (int)date('W', $start_date); 
$end_week = (int)date('W', $end_date); 

echo "START WEEK: " . $start_week . "<BR>"; 
echo "END WEEK: " . $end_week . "<BR>"; 

$dates = array(); 

if ($start_week && $end_week) { 

    for ($week=$start_week; $week<=$end_week; $week++) { 
     echo "WEEK: " . $week . "<BR>"; 

     $startdate = strtotime ('- ' . $week. ' week', strtotime (date('Y-m-d'))) ; 
     $startdate = date ('Y-m-d' , $startdate); 

     //$end = date('Y-m-d'); 
     $end = strtotime ('- ' . ($week + 1) . ' week', strtotime ($startdate)) ; 
     $end = date ('Y-m-d' , $end); 

     $dates[$week]['start'] = $startdate; 
     $dates[$week]['end'] = $end; 
    } 

    print_r($dates); 
} 

任何想法,我缺少什麼,或者有更簡單的方法嗎?

+0

您從STARTDATE操作'($周+ 1)weeks'。 – hjpotter92

回答

2

您可以嘗試

$startDate = new DateTime(); 
$startDate->setTimestamp(1337621424); 

$endDate = new DateTime(); 
$endDate->setTimestamp(1349964545); 

$dates = array(); 
while ($startDate <= $endDate) { 
    $week = array(); 
    $week['start'] = $startDate->format("Y-m-d"); 
    $startDate->modify("+1 week"); 
    $week['end'] = $startDate->format("Y-m-d"); 

    $dates[$startDate->format("W")] = $week ; 
} 
var_dump($dates);