2015-10-15 71 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

请记住,如果可以的话,不要硬编码! –

相关问题