转换月份数月的短名

问题描述:

我有一个变量具有以下值转换月份数月的短名

$month = 201002; 

第4个数字代表年份,最后2个数字表示月份。我需要得到月份字符串名称中的最后2个数字,例如。二月

我的代码看起来像这样

<?php echo date('M',substr($month,4,6)); ?> 

我我可以去获取月份名称

+0

可能重复http://stackoverflow.com/questions/4612012/php-convert-month -number-to-short-month-name) – 2014-07-21 13:45:48

追加 “01” 和的strtotime就能解析字符串:

echo date('M', strtotime($month . '01')); 
+0

02代表2月不是5月 – Roland 2010-05-31 12:01:48

+0

当然!试试我的代码,它的工作原理。 – mexique1 2010-05-31 12:04:18

+0

@Roland:02 = Jan,03 = Feb,...,13 = Dec – r3zn1k 2010-05-31 12:09:04

日期的第二个参数是一个时间戳。 使用mktime创建一个。

$month = 201002; 
$monthNr = substr($month, -2, 2); 

$timestamp = mktime(0, 0, 0, $monthNr, 1); 
$monthName = date('M', $timestamp); 
+0

它在这里为我输出'Dec'http://writecodeonline.com/php/ – Sarfraz 2010-05-31 11:57:10

+0

我忘记了$ @ $ timestamp,现在它工作。 – r3zn1k 2010-05-31 12:06:04

+0

'substr'的​​第二个参数是长度,而不是结束位置。你也可以使用'substr($ month,-2,2)'来寻找最后的结果。 – 2010-05-31 12:08:48

$mydate = "201002"; 
date('M', mktime(0, 0, 0, substr($mydate, 4, 2), 1, 2000)); 

作为一个程序员,甚至一无所知的PHP数据魔,我就做它

$month = intval(substr($input_date,4,2)); 
$mons = explode(" ","Zer Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"); 
echo $mons[$month]; 
+0

可怜的八月和九月。 :( – salathe 2010-05-31 21:01:22

+0

应该SUBSTR($ strange_date,4,2),因为第三个参数是lenght ... – r3zn1k 2010-06-01 07:04:12

+0

感谢。 \t 7多了去了 – 2010-06-01 07:07:54

这可能会帮助你..

$month = substr($month, -2, 2); 
    echo date('M', strtotime(date('Y-'. $month .'-d'))); 

您可以使用DateTime类来使用日期字符串和格式来获取Date数据结构。然后得到一个日期字符串任何像这样的格式:

$month = 201002; 
$date = DateTime::createFromFormat('Yd', $month); 
$monthName = $date->format('M'); // will get Month name 
[PHP转换月份数短月份名称](的