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 サイトの他の関連記事を参照してください。