首页 文章

grab PHP上个月的最后一天[重复]

提问于
浏览
0

可能重复:PHP的最后一天

在PHP中,我试图获得上个月的最后一天 . 例如,今天是2012年12月11日 . 所以我试图 grab 的日期是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日,而不是 grab 12月1日 . 似乎“-1个月”只是减去了30天 .

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

3 回答

  • 5

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

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

    $ calendar通常是CAL_GREGORIAN

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

  • 3

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

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

    它记录在案:

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

  • 4
    $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然后代码将完成其余的工作 .

相关问题