5

3 営業日前の PHP 日付を取得したいと考えています。

あらゆる種類のテキスト メソッドで日付を取得するための例を多数見つけましたが、最も近いものはこれでした提供された。

今日の 3 営業日前を返すように PHP コードを作成するにはどうすればよいですか?

これは機能しますが、週/週末の日を考慮していません:

date('Y-m-d', strtotime('-3 days')); // returns 2012-12-01

これは機能しませんが、私が見たいのは次のとおりです。

date('Y-m-d', strtotime('four week days ago'));

実際、上記は「1969-12-31」を返します。これもそうです: strtotime('-4 week days').

4

5 に答える 5

11

欲しいものを手に入れるまで、1日さかのぼることができます。これが最も効率的な方法かどうかはわかりませんが、仕事は完了します。

$count = 0
$day = strtotime('-1 day');
while ($count < 3 || date('N', $day) > 5) {
   $count++;
   $day = strtotime('-1 day', $day);
}
于 2012-12-05T00:55:47.910 に答える
1

最終的な答え:

私のような初心者にとって、これは Explosion Pills の回答を使用した作業コードでした。

function working_days_ago($days) {
    $count = 0;
    $day = strtotime('-1 day');
    while ($count < $days || date('N', $day) > 5) {
       $count++;
       $day = strtotime('-1 day', $day);
    }
    return date('Y-m-d', $day);
}

$three_days_ago = working_days_ago('3');

魅力のように動作します!

于 2012-12-05T01:07:36.897 に答える
-1

get day after 関数 ↓</p>

function working_days($days){
            $day = strtotime(date('Y-m-d'));
            for ($x=0;$x<$days;$x++) {
                $day = strtotime('+1 day', $day);
                if (date('N', $day) > 6) {
                    $x = $x - 1;
                }
            }
            return date('Y-m-d',$day);
        }
       print_r( working_days(25));
    }
于 2018-08-14T11:41:06.957 に答える