我试图找到指定日期的第一个工作日,但我还没有想出任何解决方案,但我在想,你可以做一些像strtotime(“ - x days”,$ time)
刚才我正在使用这种方法来计算回去的天数,但我想知道,如果可以以任何方式进行优化
if ($i == 0)
return 6;
else
return $i-1;
其中$ i是星期几的数字表示(与PHP的日期('w')相同)
我还需要找到一周的最后一天,但我想,你可以做到
strtotime('+'.date('w', $dateTo).'days', $dateTo);
答案 0 :(得分:2)
尝试将strtotime()
与relative format一起使用。这样的事情应该有效:
第一个工作日为strtotime('monday', $relativeTime);
,上一个工作日为strtotime('friday', $relativeTime);
。
答案 1 :(得分:2)
这是所有相对日期的数学。如果你有一个合适的PHP时间戳,那么它只是一个简单的整数。 date('w')
是从该时间戳中提取星期值的正确方法,但其余的可以通过常规数学来完成:
$today = date('w', $dateTo);
$last_sunday = $dateTo - (86400 * $today); // same time on previous sunday
$last_day_of_week = $dateTo + (86400 * (6 % $today));
这比通过round-tripping
的{{1}}更快,并且会导致日期字符串解析惩罚。