0

可能重复:
PHP 本月的最后一天

在 PHP 中,我试图得到上个月的最后一天。例如,今天是 2012 年 12 月 11 日。所以我试图抓住的日期是 11 月 30 日。

这就是我目前正在尝试做的事情:

        //this grabs the last daye of this month
        $current_month = date('Y-m-t',strtotime('today'));

        //this should grab November 30th.
        $last_month = date("F, Y",strtotime($current_month." -1 month ")

它没有抓住 11 月 30 日,而是抓住了 12 月 1 日。似乎“-1 个月”只是减去 30 天。

我如何正确抓住上个月的最后一天?

4

3 回答 3

5
$datetime = new DateTime('last day of this month');
echo $datetime->format('F jS');

或者

$datetime = new DateTime();
echo $datetime->format('Y-m-t');

第一个允许您以任何方式格式化输出。如果您想使用不是当前月份的月份,您可以向 DateTime 构造函数传递一个有效的日期格式,然后代码将完成其余的工作。

于 2012-12-11T16:21:29.240 回答
4

cal_days_in_month() 是你想要的。最后一天与总天数相同。

cal_days_in_month (int $calendar,int $month,int $year)

$calendar 通常是 CAL_GREGORIAN

将 $month - 1 发送到函数以获得所需的结果。

于 2012-12-11T16:22:51.643 回答
3

您可以使用当前月份/年份和日期调用mktime()0

$last_day_of_last_month = mktime(0, 0, 0, date('n'), 0, date('Y'));

它记录在案:

day [...] 小于 1 的值(包括负值)参考上个月的天数,因此 0 是上个月的最后一天,-1 是前一天,等等。值大于相关月份的日期参考下个月的适当日期。

于 2012-12-11T16:26:34.487 回答