所以我有一个脚本可以在32,48和72小时前进行多次检查.
基本上我检查我的数据库中至少有x个小时的条目.
现在这样工作正常:
$date = date('Y-m-d H:i:s',strtotime('-32 hours'));
$q = "SELECT * FROM `table` WHERE `date` <= '".$date."'";
现在我想要排除周末.我知道你可以在strtotime中使用工作日来获得这种效果,但这不会持续数小时.
48小时很容易,因为我可以简单地执行以下操作:
echo date('Y-m-d H:i:s',
strtotime(date("Y-m-d H:i:s").
" -2 weekdays ".
date('H:i:s')));
72小时也很容易,因为它是3天.然而,32小时是一个问题,因为它是±1.3天.
总之,如何获得32小时前的日期时间,不包括周末.
解决方法:
像你最初一样使用strtotime:
$time = strtotime('-32 hours');
然后手动进行周末/工作日计算.
// If the day is Sunday or Saturday subtract a full day.
while (date('w', $time) % 6 == 0) {
$time = strtotime('-1 day', $time);
}
$date = date('Y-m-d H:i:s', $time);