我有几个月的简短版本:JAN, FEB, MAR
等等。
并希望将它们转换为相应的数值:1, 2, 3
等
此外,我希望能够在数字月份值,“短”月份名称(JAN, FEB, MAR
)和长版本(January, February, March
等)之间来回切换。 )
注意:正如@ dipu-raj指出的那样,这不是重复,因为我问的是与MySQL MONTHNAME() from numbers 相反的答案,答案是不同的,因为它是它需要不同的功能
答案 0 :(得分:12)
要将缩写转换为完整月份名称,请使用:
mysql> select monthname(str_to_date('Mar','%b'));
+------------------------------------+
| monthname(str_to_date('Mar','%b')) |
+------------------------------------+
| March |
+------------------------------------+
要将缩写转换为数字,请使用:
mysql> select month(str_to_date('Mar','%b'));
+--------------------------------+
| month(str_to_date('Mar','%b')) |
+--------------------------------+
| 3 |
+--------------------------------+
答案 1 :(得分:1)
您可能需要熟悉MySQL Date函数。对于您的案例,STR_TO_DATE()
和DATE_FORMAT()
似乎最有用。这是一个信息的链接:
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
答案 2 :(得分:0)
JAN 到其月份编号;将您的列/值替换为下面的FEB
:
date_format(str_to_date(concat(2012, 'FEB'), '%Y%b'), '%m')
^^^^^
1 以其短月名称;将您的列/值替换为指示:
date_format(str_to_date(concat('2012-', 1), '%Y-%m'), '%b')
^
使用%M
代替%b
作为上一个值来获取漫长的月份名称。
答案 3 :(得分:-1)
试试这个:
$date = 'Jan';
echo 'Month number is '.date('n', strtotime($date)).'</br>';
echo 'and its '.date('F', strtotime($date));
使用PHP Manual - Date/Time Functions获取更多格式选项。