【问题标题】:How to calculate and get a date in the past (e.g. 3 weeks ago) from today's date (PHP)如何从今天的日期(PHP)计算并获取过去的日期(例如 3 周前)
【发布时间】:2011-01-01 19:23:30
【问题描述】:

我有一个新闻过滤脚本,我通常使用它来获取当前日期:

echo date('j n Y');

返回类似于 1 1 2011 的内容。我想要做的是能够返回一周前相对于当前日期/日期的日期,这样如果我选择获取 1,它将仅返回示例 (25 12 2010)一周前。如果我想获取相对于当前日期 3 周前的日期、月份和年份,依此类推。

我不知道这可能吗?鉴于我只需要使用当前日期月份和年份来检索过去的日期,并且我应该能够将过去的日期检索为日、月和年以在脚本中使用。

如果我的问题不清楚,请告诉我。我很抱歉。

【问题讨论】:

    标签: php date


    【解决方案1】:

    strtotime 会给你一个过去的 unix 时间日期,然后你可以将它输入到日期函数中:

    echo date('j n Y', strtotime("-3 weeks"))
    

    【讨论】:

    • @Ahmad Fouad 是的。查看 strtotime 文档(答案中的链接)以获取更多示例。
    【解决方案2】:

    使用 DateTime 类而不是时间戳。使用 php 5.2 及以上版本:

    $date = new DateTime(); //defaults to the current date/time
    echo $date->modify("-3 week")->format("Y-m-d");
    

    这个类还可以处理 1970 年之前和 2038 年之后的日期。

    【讨论】:

    【解决方案3】:

    你可以使用 strtotime 来达到这个目的:

    echo date('j n Y',strtotime('-1 week'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多