ホームページ > バックエンド開発 > PHPチュートリアル > PHPで週番号または日付を指定して曜日を計算する方法は?

PHPで週番号または日付を指定して曜日を計算する方法は?

Linda Hamilton
リリース: 2024-10-26 09:20:02
オリジナル
587 人が閲覧しました

How to Calculate the Days of the Week Given a Week Number or Date in PHP?

週番号を指定した曜日の計算

日付 -u %W を使用して取得した週番号などを指定した場合コマンドを使用すると、その曜日に対応する日付を生成すると便利なことがよくあります。例から始めましょう。

2008 年の週番号 40 について考えてみましょう。ISO 8601 の週番号付けルールを使用すると、その週の日数は次のようになると予想されます。

2008-10-06
2008-10-07
2008-10-08
2008-10-09
2008-10-10
2008-10-11
2008-10-12
ログイン後にコピー

PHP 解決策:

PHP では、日付関数はさまざまな書式設定オプションを提供します。以下は、指定された週番号の曜日の日付を出力する単純なループです:

<code class="php">$week_number = 40;
$year = 2008;
for($day=1; $day<=7; $day++)
{
    echo date('Y-m-d', strtotime($year."W".$week_number.$day))."\n";
}
ログイン後にコピー

このループは、週の 7 日間を繰り返し、対応する日付を YYYY-MM-DD の形式で出力します。 .

指定された日付から曜日を計算するための PHP ソリューション:

別のシナリオでは、特定の日付から曜日を計算します。これを行う PHP 関数は次のとおりです。

<code class="php">function week_from_monday($date) {
    // Extract date parts
    list($day, $month, $year) = explode("-", $date);

    // Get the weekday of the given date
    $wkday = date('l',mktime('0','0','0', $month, $day, $year));

    // Calculate the number of days to subtract to get Monday
    switch($wkday) {
        case 'Monday': $numDaysToMon = 0; break;
        case 'Tuesday': $numDaysToMon = 1; break;
        case 'Wednesday': $numDaysToMon = 2; break;
        case 'Thursday': $numDaysToMon = 3; break;
        case 'Friday': $numDaysToMon = 4; break;
        case 'Saturday': $numDaysToMon = 5; break;
        case 'Sunday': $numDaysToMon = 6; break;   
    }

    // Get timestamp of Monday
    $monday = mktime('0','0','0', $month, $day-$numDaysToMon, $year);

    // Calculate dates for 7 days from Monday
    $dates = array();
    $seconds_in_a_day = 86400;
    for($i=0; $i<7; $i++)
    {
        $dates[$i] = date('Y-m-d',$monday+($seconds_in_a_day*$i));
    }

    return $dates;
}
ログイン後にコピー

使用例:

<code class="php">$dates = week_from_monday('07-10-2008');
print_r($dates);
ログイン後にコピー

出力:

Array
(
    [0] => 2008-10-06
    [1] => 2008-10-07
    [2] => 2008-10-08
    [3] => 2008-10-09
    [4] => 2008-10-10
    [5] => 2008-10-11
    [6] => 2008-10-12
)</code>
ログイン後にコピー

以上がPHPで週番号または日付を指定して曜日を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート