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

考虑到:

$a_date = "2009-11-23"

我想要2009-11-30;鉴于

$a_date = "2009-12-23"

我要2009-12-31。


当前回答

对我来说,最优雅的是使用DateTime

我不知道我没有看到DateTime::createFromFormat,一行程序

$lastDay = \DateTime::createFromFormat("Y-m-d", "2009-11-23")->format("Y-m-t");

其他回答

T返回给定日期当月的天数(date参见文档):

$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));

你的解决方案在这里。

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

对我来说,最优雅的是使用DateTime

我不知道我没有看到DateTime::createFromFormat,一行程序

$lastDay = \DateTime::createFromFormat("Y-m-d", "2009-11-23")->format("Y-m-t");

我知道这有点晚了,但我认为有一种更优雅的方式来使用PHP 5.3+使用DateTime类:

$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');

我使用strtotime与cal_days_in_month如下所示:

$date_at_last_of_month=date('Y-m-d', strtotime('2020-4-1
+'.(cal_days_in_month(CAL_GREGORIAN,4,2020)-1).' day'));