2017-06-13 55 views
-1

PHP,日期:點追加到一個月的短期表現

date("M.", $datetime) 

我希望得到如下的輸出:

二月
三月
四月
五月(不需要點)
Jun。
Jul。

我不喜歡if語句的想法產生日期,每次檢查月份的長度/數量。

有沒有更簡單的方法?就像一般更改月份名稱一樣?或者掛接到日期函數本身來實現每次運行日期函數時都會運行的if語句。

感謝

+0

'$ datetime'是什麼? – RiggsFolly

回答

1

如果你不想點至五月個月後出現,你將需要某種形式的檢查 - 這通常是一個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); 
+0

非常感謝,我如何直接更改date()?我的問題是:我有一個網站有許多不同的日期輸出,我需要更改輸出並在本月後面添加點,我的問題是如何在全球範圍內執行此操作。 – buckdanny

+0

就像我說的,你不能。這是一個核心的PHP函數,你不能改變它。這就是爲什麼你寫自己的功能,並使用它。儘管如此,您可以使用適當的IDE將所有'date()'重構爲'my_date()'。 – Qirel

0

這似乎有點錘子來破解一個螺母,或避免在這種情況下,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];