月份名称到月份编号 - 2 月为 03?
我正在尝试将字符串月份名称转换为月份编号,
但为什么我在 'Feb' 的结果中得到 '03',
strtolower(date('m', strtotime('Feb')));
我用其他月份名称进行了测试,并且他们看起来都很好,
strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03
到底做错了什么?
I am trying to convert string month name to month number,
but why do I get '03' in the result for 'Feb' in,
strtolower(date('m', strtotime('Feb')));
I tested with other month names and they seem to be fine,
strtolower(date('m', strtotime('Jan'))); // 01
strtolower(date('m', strtotime('Mar'))); // 03
What have done wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自 php.net 手册:
这会导致今天的日期(1 月 30 日)和“Feb”=> 的混合。 2 月 30 日 - 但这不是有效日期,因此 PHP 返回 3 月的月份数字。
尝试类似的方法
应该可以解决问题。
From the php.net manual:
This results in a mixture of todays date (January 30th) and "Feb" => February 30th - but this is not a valid date, so PHP returns the month number for March.
Trying something like
should solve the problem.
因为今天是 1 月 30 日。您没有提供日期数字,因此 php 假定是今天,最终是 2 月 30 日。然后它意识到这是无效的,所以它继续到 3 月 2 日,可怜的混乱的事情。
Because today is Jan 30th. You are not supplying a day number so php assumes today's, ending up with Feb 30th. Which it then realises is not valid, so it goes on to Mar 2nd, poor confused thing.