2015-10-15 75 views
4

我想輸出當年某月的最後一個日期和第一個日期。我使用這個代碼,但沒有工作php獲得給定月份的最後一天

$month='02'; 
$first_day_this_month = date('Y-'.$month.'-01'); // hard-coded '01' for first day 
$last_day_this_month = date('Y-'.$month.'-t'); 

echo $first_day_this_month;print'<->';echo $last_day_this_month; 

我的輸出顯示

2015-02-01<->2015-02-31 

但這將是2015-02-01<->2015-02-28

+0

獲取時間戳:'strototime(「2015年2月的最後一天」);' - [示例](http://www.tehplayground.com/#j1rFj2F5T)。 – Darren

+0

混合'echo'和'print'?恥辱! –

回答

8

我以前有過這樣的問題,使用PHP,請嘗試以下方法:

$dateToTest = "2015-02-01"; 
$lastday = date('t',strtotime($dateToTest)); 
+0

gg ... strtotime會在2038年後破產? –

+2

21年的時間..我懷疑Unix時間戳,因爲我們知道它會存在。 但是,如果這個「Y2K」問題仍然讓你害怕MySQL,那麼將日期存儲爲DATETIME而不是TIMESTAMP。 http://stackoverflow.com/a/2012620/1618363 –

1

有很多方法可以做到這一點,我給你兩個答案\想法:

1 - 嘗試使用strtotime PHP函數(http://php.net/manual/es/function.strtotime.php

喜歡的東西date("Y-m-d", strtotime("last day of this month"));或第一天......或任何一個月。

2-其他方式,你可以使用:

第一天:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*,1 ,date("Y"))); 

最後一天:

date("Y-m-d", mktime(0, 0, 0, *YOUR MONTH PARAM*+1,0,date("Y"))); 

閱讀mktime功能在這裏:

http://php.net/manual/es/function.mktime.php

祝你好運!

+0

請記住,如果可以的話,不要硬編碼! –

相關問題