為什麼我的 PHP 程式碼會將月份數字轉換為十二月而不是正確的月份?

Patricia Arquette
發布: 2024-11-07 02:27:03
原創
156 人瀏覽過

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

在PHP 中將數字轉換為月份名稱

嘗試使用sprintf 和日期的組合將數字月份值轉換為其對應的名稱時函數時,您可能會遇到意外問題,輸出顯示12 月而不是預期的月份。

問題:

提供的程式碼,$monthNum = sprintf(" s", $結果["月"]); $monthName = date("F" , strtotime($monthNum)); 錯誤地向數字月份值添加前導零。這會導致日期函數將結果值解釋為 12 月,而不是所需的月份。

解決方案:

推薦方法:

建議的解決方案是利用 DateTime 物件進行日期和時間計算。對於 PHP 5.2 及以上版本,您可以使用以下程式碼:

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

The !格式化字元將所有值重設為 Unix 紀元,m 格式表示帶有前導零的月份的數字表示形式。

替代解決方案(對於較舊的PHP 版本):

對於5.2 以下的PHP 版本,可以使用mktime 函數建立時間戳,然後將其作為第二個參數傳遞給日期函數:

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

這裡,mktime 建立第一天的時間戳指定月份的。將函數中的 10 調整為該月中所需的日期。

透過使用這些解決方案,您可以將數字月份值正確轉換為 PHP 中對應的名稱。

以上是為什麼我的 PHP 程式碼會將月份數字轉換為十二月而不是正確的月份?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!