如何在PHP中获得每月的最后一天?
考虑到:
$a_date = "2009-11-23"
我想要2009-11-30;鉴于
$a_date = "2009-12-23"
我要2009-12-31。
如何在PHP中获得每月的最后一天?
考虑到:
$a_date = "2009-11-23"
我想要2009-11-30;鉴于
$a_date = "2009-12-23"
我要2009-12-31。
当前回答
另一种使用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
其他回答
如果你想回到几个月前,你也可以这样做。
$list = [
0, 1, 2, 3
];
$date = new \Datetime();
$dates = [];
foreach($list as $item)
{
$set = clone $date;
$set->modify("-$item month ");
$dates[] = $set->modify("last day of this month");
}
return $dates;
我在这里将它包装在我的日期时间助手类中 https://github.com/normandqq/Date-Time-Helper 使用 $dateLastDay = Model_DTHpr::getLastDayOfTheMonth();
完成了
T返回给定日期当月的天数(date参见文档):
$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));
现在,如果你有月份和年份,DateTime可以很方便地做到这一点
$date = new DateTime('last day of '.$year.'-'.$month);
来自另一个DateTime对象
$date = new DateTime('last day of '.$otherdate->format('Y-m'));
你可以为下个月的第一天创建一个日期,然后使用strtotime("-1 day", $firstOfNextMonth)