月份名称到月份号码 - 2月份为03?

时间:2012-01-30 12:33:38

标签: php datetime date php-5.3 strtotime

我正在尝试将字符串月份名称转换为月号,

但为什么我在'Feb'的结果中获得 '03'

strtolower(date('m', strtotime('Feb')));

我用其他月份的名字进行测试,看起来很好,

strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03

做错了什么?

2 个答案:

答案 0 :(得分:2)

因为今天是1月 30日。你没有提供一天的数字,所以php假设今天,最后是2月30日。然后它实现的是无效的,所以它继续到3月2日,可怜的混乱。

答案 1 :(得分:2)

来自php.net manual

  

该函数需要一个包含英文日期的字符串   格式并将尝试将该格式解析为Unix时间戳(   从1970年1月1日00:00:00 UTC开始的秒数,相对于   现在给出的时间戳,或者现在没有提供当前时间

这导致今天日期(1月30日)和“2月”=>的混合。 2月30日 - 但这不是有效日期,因此PHP返回3月份的月份数。

尝试类似

的内容
strtotime('01 Feb')

应该解决问题。