从当前日期减去月份将返回意外结果


Subtracting months from current date returns unexpected result

我只是试着从当前日期08/29/2015 @ 11:19am (UTC)分别减去6和5个月,得到相同的结果

下面是代码示例:
date("M, Y", strtotime("-5 months")) // returns Mar, 2015
date("M, Y", strtotime("-6 months")) // returns Mar, 2015

是因为夏令时吗?

date("M, Y", strtotime("-6 months"))

仅仅返回Mar, 2015,因为没有29。今年二月。接下来的一个月,也就是三月。

要解决这个问题,只需从每月的第一天开始,例如

echo date("M, Y", strtotime("-6 months", strtotime(date('Y-m-01'))));
                                       //^^^^^^^^^^^^^^^^^^^^^^^^^ First day of month

这是我能为你找到的唯一可行的选项。如何从今天减去4个月?

echo date("Ymd", mktime(0, 0, 0, date("m")-5, date("d"),   date("Y")));;