Php日期函数-1个月问题

Php日期函数-1个月问题,php,date,Php,Date,我之前曾搜索过一种方法,从当前时间中删除一个月,我得出以下结论: date("Ym",strtotime("-1 month", mktime())); 老实说,它一直工作到今天,2014年3月31日。在我的应用程序中,这两个操作返回相同的值(201403): 有谁能解释一下我为什么会有这个错误,我该如何修复它? 谢谢。在进行数学运算之前,将日期设置为每月的第一天是很重要的!此操作允许将日期设置为每月的第一天:date('01-m-Y')。以下是问题的完整解决方案: date( 'Ym

我之前曾搜索过一种方法,从当前时间中删除一个月,我得出以下结论:

date("Ym",strtotime("-1 month", mktime()));
老实说,它一直工作到今天,2014年3月31日。在我的应用程序中,这两个操作返回相同的值(201403):

有谁能解释一下我为什么会有这个错误,我该如何修复它?
谢谢。

在进行数学运算之前,将日期设置为每月的第一天是很重要的!此操作允许将日期设置为每月的第一天:
date('01-m-Y')
。以下是问题的完整解决方案:

date(
    'Ym',
    mktime(1,2,3,date('m')-1,date('d'),date('Y'))
);
date("Ym", strtotime("-1 month", strtotime(date('01-m-Y'))))

“一个月”到底是什么意思?你希望得到什么结果?我想做的是从我当前的日期中删除1个月。这意味着我将有例如201402,当我们在三月和201401,当我们在二月。总是重置你的日期到一个月的第一个,然后再做这样的数学,你应该明确减少月数。你要做的是从“3月31日”中减去“一个月”,根据定义,这是一个相当未定义的操作。好的,我将它设置为每月的第一天,然后减去一个月对我来说很好,但我仍然有同样的问题。不幸的是,日期('Ym',mktime(1,2,3,日期('m')-1,日期('d'),日期('Y'))==日期('Ym',mktime(1,2,3,日期('m')-0,日期('d'),日期('Y'))
date("Ym", strtotime("-1 month", strtotime(date('01-m-Y'))))