我正在写一个用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()
函数应该将其转换回与输入格式相同的人类可读日期。但事实并非如此。输出CCD_ 3。5月,上面写着5月5日;六月,六月六日。所以我认为有一些错误使它混淆了月份的日期和月份本身。
另一方面,这可能是一些我从未考虑过的奇怪问题。我在寻求第二种意见/"你太愚蠢了,你做错了X"。如果是错误,我会报告的。我很难相信这是错误,因为这些日期来得这么快,我想现在已经注意到了。
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.
每当你认为你在工具中检测到错误时,都要仔细查看你的代码!