[英]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.