抓住PHP上个月的最后一天

时间:2012-12-11 16:20:10

标签: php date datetime time

  

可能重复:
  PHP last day of the month

在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天。

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

3 个答案:

答案 0 :(得分:5)

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

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

第一个允许您根据需要格式化输出。如果你想使用一个不是当月的月份,你可以传递DateTime构造函数valid date format,然后代码将完成其余的工作。

答案 1 :(得分:4)

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

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

$ calendar通常是CAL_GREGORIAN

将$ month - 1发送到您想要的结果的函数。

答案 2 :(得分:3)

您可以使用当前月/年和0作为日期致电mktime()

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

记录在案:

  

[...]小于1的值(包括负值)引用上个月的日期,因此0表示上一个月的最后一天   月,-1是前一天,等等。值大于数字   在相关月份的日子参考了相应的一天   下个月。