如何从今天的日期减去 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 个月?的主要内容,如果未能解决你的问题,请参考以下文章

如何从普通日期中减去天数?

如何从今天的日期获取下个月的日期并将其插入我的数据库中?

VB 当前日期 减去 一个月

怎么用JS来计算出今天的前2个月的日期

如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份

MySQL中判断日期间隔的方法