2011-02-12 75 views
2

如果我通過例如?month=$04在url和echo $date我不斷收到1月份,而不是它應該是(4月)。如果我回應$month我得到04這是正確的。這是我一直在使用的代碼:PHP日期輸出不正確的月份

if (isset($_GET['month']) && $_GET['month']!='') { 
     $month = $_GET['month']; 
     $date = date('F', $month); 
} 

echo $date; 

對我的生活中,我想不通爲什麼它不能正常輸出。任何幫助非常感謝。

+0

請注意,根據上下文,「09」可能被解釋爲[八進制數](http://stackoverflow.com/questions/3431808/echo-05000-php)。在做任何計算之前刪除前導'0'是一個好主意 – 2011-02-12 16:01:17

回答

5

看你在這裏做什麼:

date('F', '04'); 

date()第二個參數是一個時間戳,從1月1日,1970年那麼你正在做的是確定1970年1月1日,00:00 :午夜04點。

你想做什麼可以實現,例如,像這樣:

$timestamp = strtotime ("2000-$month-01"); // 2000-04-01 will always be April 
echo date('F', $timestamp); 
+0

完美的作品。感謝您的幫助 - 我知道爲什麼。 – 2011-02-12 16:12:12

1

這是因爲您正在使用帶有錯誤參數的date()。 $ month必須是Unix時間戳。你可以考慮使用mk_time()函數。

0

你需要一個實際的日期。嘗試類似 echo date("F", mktime(0, 0, 0, 4, 0, 0));