我正在尝试将字符串的月份名称转换为月份号,
但是为什么'03'在'Feb'的结果中,
strtolower(date('m', strtotime('Feb')));我用其他月份的名字做了测试,看起来很好,
strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03做错了什么?
发布于 2012-01-30 12:40:20
来自php.net手册
函数将被赋予一个包含英文日期格式的字符串,并尝试将该格式解析为Unix时间戳(自1970年1月1日以来的秒数00:00:00 UTC),相对于现在给出的时间戳,或者如果现在没有提供当前时间。
这导致了今天的日期(1月30日)和“2月30日”=> 2月30日的混合-但这不是一个有效的日期,所以PHP返回三月的月份号。
试着像
strtotime('01 Feb')应该解决问题。
发布于 2012-01-30 12:37:19
因为今天是一月三十日。您没有提供这样的天数,所以php假设是今天的,到2月30日结束。然后它意识到它是无效的,所以它继续到3月2日,可怜的困惑的事情。
https://stackoverflow.com/questions/9063921
复制相似问题