繁体   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