我有一個包含月份編號的變量。我怎樣才能從這個值得到這個月的名字?如何從PHP中的數字中獲取月份名稱?
我知道我可以爲$month_num => $month_name
定義一個數組,但我想知道在PHP中是否有時間函數可以做到這一點,而不需要數組?
我有一個包含月份編號的變量。我怎樣才能從這個值得到這個月的名字?如何從PHP中的數字中獲取月份名稱?
我知道我可以爲$month_num => $month_name
定義一個數組,但我想知道在PHP中是否有時間函數可以做到這一點,而不需要數組?
date("F",mktime(0,0,0,$monthnumber,1,2011));
雖然這是正確的答案,但應該解釋發生了什麼事情。 – Kayla
請參閱下面的[我的回答](http://stackoverflow.com/a/24596827/1563422),稍微簡短一點。 –
你可以只用F
date()
格式字符一個Unix時間戳的文本一個月,你可以把最新的幾乎任何格式轉換成Unix的時間戳與strtotime(),所以挑選任何一年和一天1〜28(因此它在所有12個月存在),做:
$written_month = date("F", strtotime("2001-$number_month-1"));
// Example - Note: The year and day are immaterial:
// 'April' == date("F", strtotime("2001-4-1"));
有關使用strtotime()
的好處是,它是非常靈活的。假設你想要一個文本月份名稱數組,每當腳本運行時一個月開始;
<?php
for ($number = 1; $number < 13; ++$number) {
// strtotime() understands the format "+x months"
$array[] = date("F", strtotime("+$number months"));
}
?>
一個好主意,雖然結果從下個月開始,但可能不是我們期望的標準(Jan,feb等)輸出。 – Ben
您還可以使用:
jdmonthname(gregoriantojd($monthnumber, 1, 1), CAL_MONTH_GREGORIAN_LONG)
這只是另一種方式。與@Dreaded semicolon的回答相比,我對此效率一無所知。
以下是關於ideone的a demo。
參考:
jdmonthame
返回儒略曆月份名稱。
gregoriantojd
將格里高利(當前使用的)日曆日期轉換爲朱利安(1, 1
部分代表白天和年份)。
使用將日期元素作爲參數的函數mktime。
<?php
$month_number= 3;
$month_name = date("F", mktime(0, 0, 0, $month_number, 10));
echo $month_name;
?>
輸出: 月
['date'(http://php.net/manual/en/function.date.php)是不夠好? – Nemoden