PHP で指定された週番号から曜日を効率的に抽出する方法は?

DDD
リリース: 2024-10-26 11:03:02
オリジナル
168 人が閲覧しました

How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

指定された週番号から曜日を抽出する

対応する週番号を指定して、特定の週に含まれる個々の日を計算する、時間ベースのアプリケーションでは一般的なタスクです。このガイドでは、date、strtotime、mktime 関数を使用した PHP でのこれに対する解決策を提供します。

PHP 実装

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

このコード スニペットは、最初に週番号を初期化します。および対応する年。次に、月曜日 (1 日目) から始まり日曜日 (7 日目) で終わるまで、曜日を繰り返します。毎日、strtotime 関数を使用して対応する日付を計算し、m/d/Y 形式で出力します。

追加の PHP 関数

または、別の PHP関数、week_from_monday を使用すると、月曜日から始まる特定の週の日付を取得できます。この関数は、引数として DD-MM-YYYY 形式の日付文字列を受け取り、対応する週の日付の配列を返します。

<code class="php"><?php
function week_from_monday($date) {
    list($day, $month, $year) = explode('-', $date);
    $wkday = date('l', mktime(0, 0, 0, $month, $day, $year));
    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;
    }

    $monday = mktime(0, 0, 0, $month, $day - $numDaysToMon, $year);
    $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;
}

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

この拡張された関数により、日付をより柔軟に取得できるようになります。週。その週内の特定の日付が指定されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!