我很难过为什么下面的
PHP strtotime函数返回’07’作为月号,而不是$06’当$monthToGet =’June’时:
$monthToGet = $_GET['mon']; $monthAsNumber = date('m',strtotime($monthToGet));
从搜索开始,它似乎可能是由于我没有指定默认日期参数(在这种情况下是日期和年份).那会是原因吗?
任何建议赞赏!
TL; DR
你是对的
echo date("m",strtotime("June")); -> 07
但是,这确实有效:
echo date("m",strtotime("1. June 2012")); -> 06
问题解释了
今天是2012年7月31日,由于您只提供了一个月,因此当前日期和当前年份用于创建有效日期.
NOTE
The function expects to be given a string containing an English date format and will try to parse that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC),relative to the timestamp given in now,or the current time if now is not supplied.
备择方案
您可以使用date_parse_from_format()
或strptime()
以稍微不同的方法实现您想要的效果.
(感谢johannes_和johann__的输入)