从有条件确定的开始日期获取 N 个连续星期四

Get N number of consecutive Thursdays from a conditionally determined starting date

提问人:HiDayurie Dave 提问时间:9/18/2023 最后编辑:mickmackusaHiDayurie Dave 更新时间:9/26/2023 访问量:52

问:

我正在尝试根据循环中的每周总输入来获取每周星期四的日期。

我放的示例从现在开始的 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
PHP 循环 日期

评论

1赞 Nick 9/18/2023
为什么希望它在晚上 08:00 切换?
0赞 mickmackusa 9/26/2023
主题相关:获取星期一、星期五、X 次的每周日期,并获取给定年份中所有星期五的日期,当然,您可以像 PHP 一样添加您的调用来填充具有特定日期的下拉列表顺便说一句,您的代码中哪里提到了截止时间?+$i weeksstrtotime()8pm

答:

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()

观看演示:https://3v4l.org/kQKm6

如果您想将班次添加到下周四,即晚上 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";
}

观看演示:https://3v4l.org/tfBU1