在PHP给出一个月份字符串,如“十一月”,如何在不使用12部分switch语句的情况下返回11?
作者:互联网
即
Month Returns
January 1
February 2
March 3
April 4
May 5
June 6
July 7
August 8
September 9
October 10
November 11
December 12
我已经看到了在给出月份数并返回月份字符串时使用mktime的示例,但不是相反的.
解决方法:
尝试
echo date('n', strtotime('November')); // returns 11
如果必须经常这样做,您可以考虑使用具有硬编码这些值的数组:
$months = array( 1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April',
5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August',
9 => 'September', 10 => 'October', 11 => 'November',
12 => 'December');
也可以反过来使用键的名称和值的数字.
使用您所做的值的名称
echo array_search('November', $months); // returns 11
以及你所做的钥匙的名称
echo $months['November']; // returns 11
我发现通常使用键的数字会更好一些,但对于您的UseCase,键的名称方法可能更舒适.如果数组中只有12个值,则数组approches之间应该没有太大区别.
快速基准测试显示0.000003s与0.000002s的差异,而我的计算机上的时间转换需要0.000060s(读取:在其他计算机上可能不同).
标签:mktime,php,date 来源: https://codeday.me/bug/20190927/1823776.html