ホームページ  >  記事  >  バックエンド開発  >  私の PHP コードが月番号を正しい月ではなく 12 月に変換するのはなぜですか?

私の PHP コードが月番号を正しい月ではなく 12 月に変換するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 09:21:02678ブラウズ

Why Does My PHP Code Convert Month Numbers to December Instead of the Correct Month?

PHP で数値を月の名前に変換する

問題:

PHP コードを使用して月の数値 (例: 8 月の 8) を対応する月の名前に変換すると、コードは「8 月」ではなく「12 月」を誤って返します。

コード:

<code class="php">$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));

echo $monthName;</code>

根本原因:

sprintf() 関数が 10 未満の月の値に先頭の 0 を追加しているため (例: 8 が 08 になります)、これにより date( ) 値を 12 月 (月 12) として解釈します。

推奨解決策 (PHP >= 5.2):

日付/時刻操作には DateTime オブジェクトを使用します:

<code class="php">$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March</code>

代替ソリューション (古い PHP バージョン):

<code class="php">$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>

以上が私の PHP コードが月番号を正しい月ではなく 12 月に変換するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。