我想串月份名称转换为月数,月份名称到月份编号 - 03月份是2月份?
,但为什么会在结果“03”为“二月”中,
strtolower(date('m', strtotime('Feb')));
我与其他测试他们似乎很好,
strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03
什么做错了?
我想串月份名称转换为月数,月份名称到月份编号 - 03月份是2月份?
,但为什么会在结果“03”为“二月”中,
strtolower(date('m', strtotime('Feb')));
我与其他测试他们似乎很好,
strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03
什么做错了?
函数需要接受一个包含英语日期 格式的字符串,并会尝试解析格式为Unix时间戳(因为 秒数1970年00年1月1 :00:00 UTC),相对于现在给出的 时间戳,或者当前时间(如果现在不提供)。
这导致今天的日期(1月30日)和“2月”=> 2月30日的混合 - 但这不是有效的日期,所以PHP返回3月的月份数。
试图像
strtotime('01 Feb')
应该解决的问题。
明白了。感谢schnaader的答案。 – laukok 2012-01-30 12:46:10
因为今天是1月第30个。你没有提供一天数字,所以php假设今天是2月30日。然后它意识到是无效的,所以它继续到3月2日,困惑的事情。
感谢罗布的答案。 – laukok 2012-01-30 12:46:31
3月1日,实际上,自2月29日以来*今年*确实存在。 – lonesomeday 2012-01-30 14:21:23
因为今天是第30。尝试为每个字符串添加'1st' – 2012-01-30 12:35:18
确实:尝试'strtolower(date('m',strtotime('Feb')))' – lonesomeday 2012-01-30 12:36:13
您还没有指定日期和年份。在任何情况下,你遇到一个具体的PHP函数的问题,请首先阅读有关它的手册条目:http://php.net/strtotime – hakre 2012-01-30 12:41:53