提问人:HiDayurie Dave 提问时间:9/18/2023 最后编辑:mickmackusaHiDayurie Dave 更新时间:9/26/2023 访问量:52
从有条件确定的开始日期获取 N 个连续星期四
Get N number of consecutive Thursdays from a conditionally determined starting date
问:
我正在尝试根据循环中的每周总输入来获取每周星期四的日期。
我放的示例从现在开始的 4 周,意味着它将从本周到下 4 周的星期四日期。
到目前为止,我做了什么:
$totalWeek = 4;
for($i=0; $i<$totalWeek ; $i++) {
$getDateEveryThursday = strtotime("next Thursday");
$convertDate = date('d-m-Y', $getDateEveryThursday);
}
如果当前日期时间在星期四晚上 08:00 之前,则预期结果:
21-SEP-2023
28-SEP-2023
05-OCT-2023
12-OCT-2023
此外,如果当前日期时间为星期四且等于或晚于晚上 8:01,则日期应为:
28-SEP-2023
05-OCT-2023
12-OCT-2023
19-OCT-2023
答:
2赞
KIKO Software
9/18/2023
#1
你快到了。给定您拥有的代码,您可以执行以下操作:
$weeks = 4;
$date = "";
for($weekNo = 0; $weekNo < $weeks; $weekNo++) {
$thursday = strtotime("next Thursday " . $date);
$date = date('d-m-Y', $thursday);
echo $date . "\n";
}
当前将返回:
21-09-2023
28-09-2023
05-10-2023
12-10-2023
唯一真正的变化是,我将您返回的日期输入到函数中,以指示该函数从哪里开始。strtotime()
如果您想将班次添加到下周四,即晚上 8:00 之后的星期四,您需要添加一点以跳过一周,如下所示:
$weeks = 4;
$date = "";
if ((date("l") == "Thursday") && (date('H') >= 20)) {
$date = date('d-m-Y', strtotime("next Thursday"));
}
for($weekNo = 0; $weekNo < $weeks; $weekNo++) {
$thursday = strtotime("next Thursday " . $date);
$date = date('d-m-Y', $thursday);
echo $date . "\n";
}
评论
+$i weeks
strtotime()
8pm