如何在PHP中获得每月的最后一天?

考虑到:

$a_date = "2009-11-23"

我想要2009-11-30;鉴于

$a_date = "2009-12-23"

我要2009-12-31。


当前回答

使用Zend_Date非常简单:

$date->setDay($date->get(Zend_Date::MONTH_DAYS));

其他回答

你可以为下个月的第一天创建一个日期,然后使用strtotime("-1 day", $firstOfNextMonth)

这是一个更优雅的表达月底的方式:

  $thedate = Date('m/d/Y'); 
  $lastDayOfMOnth = date('d', mktime(0,0,0, date('m', strtotime($thedate))+1, 0, date('Y', strtotime($thedate)))); 

你的解决方案在这里。

$lastday = date('t',strtotime('today'));

另一种使用mktime而不是date('t')的方法:

$dateStart= date("Y-m-d", mktime(0, 0, 0, 10, 1, 2016)); //2016-10-01
$dateEnd = date("Y-m-d", mktime(0, 0, 0, 11, 0, 2016)); //This will return the last day of october, 2016-10-31 :)

所以用这种方法,它会计算它是31 30还是29

使用Zend_Date非常简单:

$date->setDay($date->get(Zend_Date::MONTH_DAYS));