1

PHPを使用して、月曜日から日曜日までの週の範囲を決定しようとしています。週番号を計算することはできますが、各週の正しい終了週の範囲を取得するためにssemを実行することはできません。

これが私がこれまでに持っているものです:

$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);
}   

私が見逃しているものや、もっと簡単な方法はありますか?

4

1 に答える 1

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);
于 2012-10-11T16:13:30.847 に答える