过去3周的第一天和过去3个月的第一天

时间:2011-02-16 11:07:29

标签: php

我试图用PHP中的unix时间戳计算过去3周的第一天和过去3个月的第一天。

我知道我必须使用日期功能,但有点迷失。我没有PHP 5.3因此我不能使用相对格式。

使用上述方法决定是否删除备份。 e.g。

if ($time > time()-3600*24*7 && $time < time()) {
    echo "Keeping: $file<br/>";
}

我想保留备份:

  1. 过去7天
  2. 过去3周的第一天
  3. 过去3个月的第一天
  4. 我试图用PHP中的unix时间戳计算过去3周的第一天和过去3个月的第一天。

    我知道我必须使用日期功能,但有点迷失。我没有PHP 5.3因此我不能使用相对格式。

    使用上述方法决定是否删除备份。 e.g。

    if ($time > time()-3600*24*7 && $time < time()) {
        echo "Keeping: $file<br/>";
    }
    

    我想保留备份:

    1. 过去7天
    2. 过去3周的第一天
    3. 过去3个月的第一天
    4. 更新

      添加解决方案,正如我在Pekka的帮助下找到的那样

      $a = (strtotime("last Monday-1 week"));
      $b = (strtotime("last Monday-2 week"));
      $c = (strtotime("last Monday-3 week"));
      $d = (strtotime(date('m').'/01/'.date('Y').' 00:00:00'));
      $e = (strtotime('-1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')));
      $f = (strtotime('-2 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')));
      

3 个答案:

答案 0 :(得分:0)

使用strtotime()的魔法。

echo strtotime("-7 days");
echo strtotime("-3 weeks");
echo strtotime("-3 months");

strtotime()甚至可以做last tuesdaymidnight .....

等内容

答案 1 :(得分:0)

要计算日期,您可以使用strtotime

$last7days   = strtotime('-7 days');
$last3weeks  = strtotime('-3 weeks');
$last3months = strtotime('-3 months');

然后只需将其与$time值进行比较:

if ( $time > $last7days ) {
    ...
}

答案 2 :(得分:0)

我很早就知道这个问题,但想分享我自己的答案,以便其他人可能会觉得它有用。这在 PHP 7.2 中有效,但不确定其他版本。要获得 3 个月的第一天,这是代码。

 echo date('Y-m-d', strtotime("FIRST DAY OF -3 MONTH"));

结果:

2021-01-01