如何从今天的日期减去 4 个月?
Posted
技术标签:
【中文标题】如何从今天的日期减去 4 个月?【英文标题】:How to subtract 4 months from today's date? 【发布时间】:2011-05-08 23:34:42 【问题描述】:我需要以"Ymd"
格式声明两个日期:$toDate
和$fromDate
。
$toDate
代表今天的日期,$fromDate
需要比今天早 4 个月。
$toDate = Date('Ymd');
$fromDate = ?
如何创建$fromDate
?
【问题讨论】:
【参考方案1】:使用strtotime
的魔力:
$fromDate = date("Ymd", strtotime("-4 months"));
【讨论】:
今天在 12 月 31 日,我尝试了相同的代码并尝试减去 1 个月,如上所述,它返回了 2012 年 12 月 1 日的日期。但是我期待 11 月 30 日。是预期结果还是错误? @Mubashar 我猜这是设计使然!这两种方法(你的和 strtotime 的)可以说同样有效。【参考方案2】:请看下面的代码...
$fourmonthsback = date("Ymd", mktime(0, 0, 0, date("m")-4, date("d"), date("Y")));
或
$fourmonthsback = mktime(0, 0, 0, date("m")-4, date("d"), date("Y"));
【讨论】:
这不适用于 1 月、2 月、3 月或 4 月,因为月份将为 0 或负数。 @cypher - 实际上 mktime 进行日期运算。如果您将月份参数设置为小于 1 mktime 的任何值,则将选择较早的月份。如果您将月份设置为 0,则 mktime 会将整个日期修改为上一年的 12 月。此算法适用于 mktime 的所有参数,时区除外。 真的吗?对不起,我当时不知道。以上是关于如何从今天的日期减去 4 个月?的主要内容,如果未能解决你的问题,请参考以下文章