0

SOに関する日付に関する質問がたくさんあることは知っていますが、これには困惑しています。

いくつかのレポートを実行する必要があります。そのためには、いくつかの日付を計算する必要があります。

レポートは月曜日に実行され、前の週の日曜日と次の土曜日の日付を計算する必要があります。

たとえば、レポートは5月28日月曜日に実行され、必要な日付は5月20日日曜日と5月26日土曜日です。

次に、同じ値が必要ですが、前の週の値なので、5月13日日曜日と5月19日土曜日です。

この部分は、レポートが実行される月曜日の現在の日付を取得し、そこから操作する場合にすぎないので、問題ないと思います。

そして最後に、私が理解できない部分は、私が言及した最初の週です。昨年の対応する日付が必要なので、前年の同じ週番号からの日曜日と土曜日の日付です。

日付関数で週番号を取得できることは知っていますが、それに基づいてその週の日曜日と前の土曜日の日付を計算する方法がわかりません。

これは私が持っているものです、OTT変数名を許してください:

$today     = date('Y/m/d');

// reports run on a Monday and use last Sunday and the following Saturday's date so get yesterday's date first
$yesterday = strtotime ('-1 day', strtotime($today));
$yesterday = date ('Y/m/d', $yesterday);

// start of week (last Sunday)
$start_of_last_week       = strtotime ('-1 week', strtotime($yesterday));
$start_of_last_week       = date ('Y/m/d', $start_of_last_week);

// end of last week (the following Saturday)
$end_of_last_week       = strtotime ('+ 6 days', strtotime($start_of_last_week));
$end_of_last_week       = date ('Y/m/d', $end_of_last_week;

// start of previous week
$start_of_previous_week       = strtotime ('-1 week', strtotime($start_of_last_week));
$start_of_previous_week       = date ('Y/m/d', $start_of_previous_week);

// end of previous week
$end_of_previous_week       = strtotime ('+ 6 days', strtotime($start_of_previous_week));
$end_of_previous_week       = date ('Y/m/d', previous;



// the start of the same week last year
$start_of_last_week_last_year = strtotime ('-1 year', strtotime($start_of_last_week ));

しかし、上記は正しくないので、次に何をすべきかわからない。

どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたはこのように特定の年の月曜日の日付と週番号を見つけることができます

date( 'Y-m-d', strtotime( '2012W21' )); //2011-05-23

複合日付形式

于 2012-05-25T09:54:43.227 に答える