PHP获取特定工作日的重复日期

PHP Get recurring dates for specific weekday

如何获取一天中所选星期几的所有重复日期?

例如,今天是2017年15月23日,星期三,如果我选择Thursday,如何获取下一个星期四开始的下5个日期,例如:

1
2
3
4
5
6
$dates = array(
[0] =>"16/02/2017",
[1] =>"23/02/2017",
[2] =>"02/03/2017",
[3] =>"09/03/2017",
[4] =>"16/03/2017");

如果我选择星期二,请获取从21/02/2017开始的日期,即下一个星期二


您可以使用strtotime为此日期生成时间戳,date函数可以生成实际日期。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

    // Array for dates
    $dates = [];

    // Get next thursday
    $date = strtotime('thursday');
    $dates[] = $date;

    // Get the next four
    for ($i = 0; $i < 4; $i++)
    {
        $date = strtotime('+1 week', $date);
        $dates[] = $date;
    }

    // Echo dates
    foreach ($dates as $date)
        echo date('Y-m-d', $date);

看看这篇文章

使用该想法:

1
2
3
4
5
6
7
8
9
10
11
12
//Get First Thursday
$date = new DateTime();
$date->modify('next thursday');

echo"<br/>Starting Thursday:" . $date->format('d/m/Y');

//Loop over next 4 Thursdays
for($i = 2; $i <= 5; $i++)
{
    $date->modify('+7 days');
    echo"<br/>Thursday" . $i .":" . $date->format('d/m/Y');
}