2

日付関数を使用して週次レポートを生成できました。テーブルは次のようになります

-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 21 |July 22 |July 23 |July 24   |July 25  |July 26 |July 27  |
-------------------------------------------------------------------------

ただし、7 月末と 8 月初めのように、現在の週が 2 か月で構成される場合はいつでも。現在の週が見つかりません。テーブルは次のようになります

-------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday  |Saturday |
     |July 28 |July 29 |July 30 |July 31   |July 32  |July 33 |July 34  |
-------------------------------------------------------------------------

助けてください。結果は次のようになります

--------------------------------------------------------------------------
week |Sunday  |Monday  |Tuesday |Wednesday |Thursday |Friday   |Saturday |
     |July 28 |July 29 |July 30 |July 31   |August 1 |August 2 |August 3 |
--------------------------------------------------------------------------
4

4 に答える 4

3

出発点として週の最初の日があると思いますか?

次に、phpsstringtotimeを使用して数日で簡単に進行します。

<?php
   $startOfWeek = date("Y-m-d", strtotime("Monday this week"));

   for ($i=0; $i<7;$i++){
       echo date("l, d M", strtotime($startOfWeek . " + $i day"))."<br />";
   }
?>

出力:

Monday, 29 Jul
Tuesday, 30 Jul
Wednesday, 31 Jul
Thursday, 01 Aug
Friday, 02 Aug
Saturday, 03 Aug
Sunday, 04 Aug

必要に応じてフォーマットします。

質問への更新:

//find week start
$weekstart = date("Y-m-d", strtotime("Monday this week"))   ;
echo $weekstart; 

strtotimeかなり柔軟です。

于 2013-07-24T11:30:55.503 に答える
0

php.net の例:

<?php
$currentdate  = mktime(0, 0, 0, date("m")  , date("d"), date("Y"));
    echo $day_eg1 = date ('N',$currentdate);
    echo $day_eg2 = date("N", $today+1 * 24 * 3600);
    echo $day_eg3= date("N", $today+2 * 24 * 3600);
    echo $day_eg4 = date("N", $today+3 * 24 * 3600);
    echo $day_eg5 = date("N", $today+4 * 24 * 3600);
    echo $day_eg6 = date("N", $today+5 * 24 * 3600);
    echo $day_eg7 = date("N", $today+6 * 24 * 3600);
?>

ソース: http://php.net/manual/pl/function.date.php

今日から 7 日間がカウントされます。たとえば先週のレポートを作成する場合は、月曜日の時間をカウントするだけで済みます。

于 2013-07-24T11:31:15.113 に答える
0

最初に月曜日を取得します。

$monday = new DateTime('monday this week');
// OR
$monday = new DateTime('may 28th 1983'); // no that's NOT my birthday ;)
$monday->modify('monday this week');

次に、7回ループします

for($i=0; $i<7; $i++) {
    echo $monday->format('Y-m-d') .'<br>';
    $monday->modify('+1 day');
}

ただし、PHPに関する限り、週は日曜日から始まることに注意してください。月曜日から始まる週の最初の曜日が必要な場合は、これを考慮する必要があります。

例: 使用new DateTime('july 21th 2013')して今週月曜日に変更すると、7 月 22 日になりますが、15 日になると予想されます。したがって、この場合は追加のチェックが必要です。

if($monday->format('l') == 'Monday') {
    // don't modify the date
}
于 2013-07-24T12:00:03.250 に答える
0

次のコードを使用して、現在の日付の週の日付を取得できます.....

<?php
//current time stamp
$ts = time();
// calculate the number of days since Monday
$dow = date('w', $ts);
$offset = $dow - 1;
if ($offset < 0) {
    $offset = 6;
}
// calculate timestamp for the Monday
$ts = $ts - $offset*86400;
// loop from Monday till Sunday
for ($i = 0; $i < 7; $i++, $ts += 86400){
    echo date("m/d/Y l", $ts) . "<br/>";
}
?>

リンク参照

于 2013-07-24T11:37:45.440 に答える