2015-04-20 55 views
-1
$_POST['month_year'] = APR-2015 

$mth = "April"; 
$pre_mth = Date("F", strtotime($mth . " last month")); 

$pre_mth只給我月份名稱,即'March'。PHP - 從本月獲取上個月的名稱

我怎樣才能獲取格式MAR-2015前一個月 - 年?

+0

應該輸出格式是固定的還是應該匹配任何輸入格式是什麼? – tmt

+0

對於格式爲「APR-2015」的輸入,輸出必須是「MAR-2015」,即相同的格式 – Slimshadddyyy

回答

2

date功能選項:

$pre_mth = strtoupper(date("M-Y", strtotime($mth . " last month"))); 
// strtoupper just to uppercase 'Mar' to 'MAR' 
+0

downvoter,請解釋。 – panther

+0

我低估了,因爲我理解OP的問題,因爲輸出應該與輸入**的格式相同,但不一定是固定格式。然而,我撤回了投票,因爲我意識到它實際上並不清楚。 – tmt

+0

@cascaval:嗯,有趣的想法,我採取了固定的輸入格式。 – panther

2

你失蹤'Y' 你date函數中

$mth="April"; 
$pre_mth = strtoupper(Date("M-Y", strtotime($mth . " last month"))); 
echo $pre_mth;// MAR-2015 
2
$input = 'APR-2015'; 

$dt = new DateTime($input); 
$dt->modify('last month'); 

$output = $dt->format('M-Y'); 

echo strtoupper($output); 

// Output: 
// MAR-2015 
0

您可以使用PHP函數strtotime(),即:

$post = "APR-2015"; 
echo strtoupper(date('M-Y', strtotime($post. "-1 Month"))); 

輸出:

MAR-2015 

DEMO