获取PHP的上个月值

时间:2017-05-31 11:27:18

标签: php

我使用下面的PHP函数来获取上个月,

$currmonth = date('m', strtotime('-1 month'));

工作正常,直到昨天我才获得 04 的价值。在今天 5月31日(5月的最后一天),我注意到该函数仅返回当前月份。那是 05 。是否还有其他备用函数可以准确地返回上个月。

5 个答案:

答案 0 :(得分:5)

尝试strtotime("first day of last month")

first day of是详细here.

的重要部分

答案 1 :(得分:3)

直接询问strtotime上个月的第一天'这可以确保它选择正确的月份: -

$currmonth = date("m", strtotime("first day of previous month"));

答案 2 :(得分:3)

您可以将OOP与DateTime类一起使用并修改方法:

$now = new DateTime();
$previousMonth = $now->modify('first day of previous month');
echo $previousMonth->format('m');

答案 3 :(得分:3)

strtotime() 准确无误。问题是你要求它返回。

“ - 1个月”“上个月”不同。它与“从当月减去1然后将结果标准化”相同。

display: inline-grid上,从当前月份减去2017-05-31获取的1不是有效日期。标准化后,它变为2017-04-31,因此得到的结果。

获得所需价值的方法不止一种。例如:

2017-05-01

答案 4 :(得分:-1)

如果您只需要获取上个月的月份数,则以下内容就足够了。

$m = idate("m") - 1;
// wrap to previous year
if ($m < 1) {
    $m = 12 - abs($m) % 12;
}

这适用于任意数量的减去月份。