簡體   English   中英

搞砸了PHP date()處理-可能的錯誤?

[英]Messed up PHP date() handling - possible bug?

我正在用PHP處理一個具有大量日期處理的項目。 為此,我使用PHP的date()函數編寫了始終無法正常運行的代碼。 我已經隔離了代碼(項目中的其余代碼無關),在這里是:

<?php
    date_default_timezone_set("GMT");
    echo date("F m, Y g:ia",strtotime("April 15, 2012 10:00am"));
    //Output: April 04, 2012 10:00am
    //Should be: April 15, 2012 10:00am
?>

從理論上講(我認為),此代碼應計算2012年4月15日上午10:00的時間戳。 這似乎是正確的情況。 然后, date()函數應以與輸入相同的格式將其轉換為人類可讀的日期。 事實並非如此。 輸出April 04, 2012 10:00am 5月是5月5日; 在6月6日 因此,我認為存在一些錯誤,使它與月份本身混淆。

另一方面,這可能是我從未考慮過的一些奇怪問題。 我正在尋找第二意見/“您如此愚蠢,您在做X錯誤”。 如果是錯誤,我將報告。 我很難相信這是一個錯誤,因為這些日期很快出現,所以我認為它現在已經被注意到。

http://php.net/manual/en/function.date.php

不,您剛剛弄亂了日期格式字符串F m意思是“月(文本)月(數字)-正在打印04,因為那是4月的月份號。

您希望用j代替打印月份的日期:

echo date("F j, Y g:ia",strtotime("April 15, 2012 10:00am")); // prints "April 15, 2012 10:00am" as expected.

每當您認為自己在工具中檢測到錯誤時,請非常仔細地查看代碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM