3

我有几个月的简短版本:JAN, FEB, MAR等。

并希望将它们转换为各自的数值:1, 2, 3

另外,我希望能够在数字月份值之间来回更改,以“短”月份名称(JAN, FEB, MAR)和长版本(January, February, March等)



注意:正如@dipu-raj 指出的那样,这不是重复的,因为我从数字中询问与 MySQL MONTHNAME()相反 的问题,答案也不同,因为它需要不同的功能

4

4 回答 4

13

要将缩写转换为完整的月份名称,请使用:

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 |
+--------------------------------+
于 2013-03-29T17:46:31.707 回答
2

您可能需要熟悉 MySQL 日期函数。对于您的情况STR_TO_DATE()DATE_FORMAT()似乎最有用。这是信息的链接:

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

于 2013-03-29T17:36:49.113 回答
1

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作为上面的最后一个值来获取长月份名称。

于 2013-03-29T17:42:10.797 回答
-1

试试这个:

    $date = 'Jan';
    echo 'Month number is '.date('n', strtotime($date)).'</br>';
    echo 'and its '.date('F', strtotime($date));

使用PHP 手册 - 日期/时间函数获取更多格式选项。

于 2013-03-29T17:50:19.247 回答