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

Ale*_*art 1 php

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

我知道我必须使用日期函数,但我有点迷失了。我没有 PHP 5.3,因此无法使用相对格式。

我使用上述内容来决定是否删除备份。例如

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

我想保留以下内容的备份:

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

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

我知道我必须使用日期函数,但我有点迷失了。我没有 PHP 5.3,因此无法使用相对格式。

我使用上述内容来决定是否删除备份。例如

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

我想保留以下内容的备份:

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

更新

添加解决方案,正如我在 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')));
Run Code Online (Sandbox Code Playgroud)

yur*_*000 5

我知道这个问题很老了,但想分享我自己的答案,以便其他人可能会发现它有用。这在 PHP 7.2 中有效,不确定其他版本是否有效。要返回 3 个月的第一天,请使用以下代码。

 echo date('Y-m-d', strtotime("FIRST DAY OF -3 MONTH"));
Run Code Online (Sandbox Code Playgroud)

结果:

2021-01-01
Run Code Online (Sandbox Code Playgroud)