我试图用PHP中的unix时间戳计算过去3周的第一天和过去3个月的第一天。
我知道我必须使用日期功能,但有点迷失。我没有PHP 5.3因此我不能使用相对格式。
使用上述方法决定是否删除备份。 e.g。
if ($time > time()-3600*24*7 && $time < time()) {
echo "Keeping: $file<br/>";
}
我想保留备份:
我试图用PHP中的unix时间戳计算过去3周的第一天和过去3个月的第一天。
我知道我必须使用日期功能,但有点迷失。我没有PHP 5.3因此我不能使用相对格式。
使用上述方法决定是否删除备份。 e.g。
if ($time > time()-3600*24*7 && $time < time()) {
echo "Keeping: $file<br/>";
}
我想保留备份:
更新
添加解决方案,正如我在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')));
答案 0 :(得分:0)
使用strtotime()
的魔法。
echo strtotime("-7 days");
echo strtotime("-3 weeks");
echo strtotime("-3 months");
strtotime()甚至可以做last tuesday
,midnight
.....
答案 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