date("M.", $datetime)
我希望得到如下的輸出:
月
二月
三月
四月
五月(不需要點)
Jun。
Jul。
我不喜歡if語句的想法產生日期,每次檢查月份的長度/數量。
有沒有更簡單的方法?就像一般更改月份名稱一樣?或者掛接到日期函數本身來實現每次運行日期函數時都會運行的if語句。
感謝
date("M.", $datetime)
我希望得到如下的輸出:
月
二月
三月
四月
五月(不需要點)
Jun。
Jul。
我不喜歡if語句的想法產生日期,每次檢查月份的長度/數量。
有沒有更簡單的方法?就像一般更改月份名稱一樣?或者掛接到日期函數本身來實現每次運行日期函數時都會運行的if語句。
感謝
如果你不想點至五月個月後出現,你將需要某種形式的檢查 - 這通常是一個if
。你可以做這樣的事情,檢查date()
返回的月份是不是5月,如果不是,可以添加一個點。
$date = date("M", $datetime);
if (date("M") != "May")
$date .= ".";
否則你需要實現自己的功能,但最終 - 你將不得不再次結束了這一點,有真的沒有辦法解決它 - 這是迄今爲止最簡單,最乾淨的方式。
你可以把它包裝到一個函數中。你不能直接改變date()
函數,但你可以創建一個你自己的函數。
function my_date($format, int $timestamp = null) {
if ($timestamp === null)
$timestamp = time();
$date = date($format, $timestamp);
if ($format == "M" && date("M", $timestamp) != "May")
$date .= ".";
return $date;
}
然後用它作爲
echo my_date("M", $datetime);
這似乎有點錘子來破解一個螺母,或避免在這種情況下,IF語句,但你可以創建一個數組你如果你喜歡,用它輸出不同的月份名稱
$m_arr = [0,'Jan.','Feb.','Mar.','Apr.','May','Jun.',
'Jul.', 'Aug.', 'Sep.','Oct.','Nov.','Dec.'];
$m = (int)date('n', $datetime);
echo $m_arr[$m];
'$ datetime'是什麼? – RiggsFolly