20

可能重复:
如何使用strtotime和日期获取相对于今天的上个月和上年?

今天是 12 月 31 日,但strtotime("-1 months")返回 12 月:

echo date("Y-m", strtotime("-1 months"));

相同的strtotime("last month")

如何正确返回上个月(11月)?

测试:http ://codepad.viper-7.com/XvMaMB

4

2 回答 2

36
strtotime("first day of last month")

first day of相对格式手册页中详述的重要部分。


示例:http ://codepad.viper-7.com/dB35q8 (硬编码今天的日期)

于 2012-12-31T14:17:53.937 回答
11

strtotime("-1 months")2012-11-31,但没有 11 月 31 日。这是过去的一天2012-11-30,它给了2012-12-01。当你这样做时,你会看到它

echo date("Y-m-d", strtotime("-1 months"));

给出作为输出

2012-12-01

键盘

于 2012-12-31T14:26:22.943 回答