在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天。
如何正确抓住上个月的最后一天?
答案 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是前一天,等等。值大于数字 在相关月份的日子参考了相应的一天 下个月。