2010-05-31 105 views
7

我有一個變量具有以下值轉換月份數月的短名

$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

回答

15

追加 「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

7

日期的第二個參數是一個時間戳。 使用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

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

作爲一個程序員,甚至一無所知的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

0

這可能會幫助你..

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

您可以使用DateTime類來使用日期字符串和格式來獲取Date數據結構。然後得到一個日期字符串任何像這樣的格式:

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