【问题标题】:How to subtract 4 months from today's date?如何从今天的日期减去 4 个月?
【发布时间】:2011-05-08 23:34:42
【问题描述】:

我需要以"Ymd" 格式声明两个日期:$toDate$fromDate

$toDate 代表今天的日期,$fromDate 需要比今天早 4 个月。

$toDate = Date('Ymd');
$fromDate = ?

如何创建$fromDate

【问题讨论】:

    标签: php date intervals subtraction


    【解决方案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 的所有参数,时区除外。
    • 真的吗?对不起,我当时不知道。
    猜你喜欢
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多