2012-03-16 35 views
0

我正在写一个项目,在PHP中有相当的日期处理。在这样做的过程中,我编写了一段始终发生故障的代码,利用PHP的date()函数。我已经分离出的代码(代码的项目,其余是无关紧要的),在这里它是:搞砸PHP日期()处理 - 可能的错误?

<?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点。这似乎正在发生。然后date()函数应该以与输入相同的格式将其重新转换为人类可读的日期。但它并没有。它输出April 04, 2012 10:00am。 5月份,它说5月5日;六月,六月六日。所以我认为有一些错误会让这个月份的月份与月份本身混淆。

另一方面,这可能是一个奇怪的问题,我从来没有考虑过。我正在寻找第二个意见/“你太蠢了,你做错了X”。如果它是一个错误,我会报告它。我很难相信这是一个错误,因为在这些日期即将到来的时候,我会认为它现在已经被注意到了。

回答

4

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

不,你刚刚搞砸了你的日期格式字符串 - F m的意思是“月(文本)月(数字) - 它打印04,因为这是四月份的月数

你希望j,而不是打印该月的一天!

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

你认为你已经发现的错误的工具需要很长时间看你的代码的任何时间

+1

这就是我为了查看相同的代码太长而复制和粘贴太多而得到的结果。谢谢。 – 2012-03-16 00:30:56