PHPで月内の日の週番号を決定するにはどうすればよいですか?

DDD
リリース: 2024-11-14 18:42:02
オリジナル
982 人が閲覧しました

How to Determine the Week Number of a Day Within a Month in PHP?

PHP で月内の日の週番号を決定する方法

月内の特定の日の週番号を決定するには、やりがいのある仕事になる。この記事では、PHP でこの問題に対する詳細な解決策を提供します。これにより、特定の日付の週番号を簡単に識別できるようになります。

解決策:

提供されている PHP 関数、 getWeeks() は、指定された日付の月の週数を計算します。 2 つのパラメータを取ります:

  • $date: YYYY-MM-DD 形式の日付。
  • $rollover:

この関数は、最初に日付から年と月を抽出し、指定された日付の間の日数を計算することによって機能します。そしてその月の最初の日。次に、その月の日数を繰り返して、毎日が指定されたロールオーバー日に該当するかどうかを確認します。存在する場合、週数が増加します。

使用例:

<?php

    /**
     * Returns the amount of weeks into the month a date is
     * @param $date a YYYY-MM-DD formatted date
     * @param $rollover The day on which the week rolls over
     */
    function getWeeks($date, $rollover)
    {
        $cut = substr($date, 0, 8);
        $daylen = 86400;

        $timestamp = strtotime($date);
        $first = strtotime($cut . "00");
        $elapsed = ($timestamp - $first) / $daylen;

        $weeks = 1;

        for ($i = 1; $i <= $elapsed; $i++)
        {
            $dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
            $daytimestamp = strtotime($dayfind);

            $day = strtolower(date("l", $daytimestamp));

            if($day == strtolower($rollover))  $weeks ++;
        }

        return $weeks;
    }


    //
    echo getWeeks("2011-06-11", "sunday"); //outputs 2, for the second week of the month
?>
ログイン後にコピー

説明:

上記の例この関数は、日付「2011-06-11」とロールオーバー日「日曜日」を指定して getWeeks() 関数を呼び出します。結果は 2 で、2011 年 6 月 11 日が日曜日のロールオーバーの 6 月の第 2 週に当たることを示します。

以上がPHPで月内の日の週番号を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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