1

我想查找日期范围之间一天中日期的出现。

例如 date1 = 04/12/2012(星期四)和 date2 = 04/30/2012。

所以 PHP 函数应该返回两个日期:

19/12/2012(开始日期后的第一个星期四)和 26/12/2012(开始日期后的第二个星期四)。

对于较大的日期范围函数应返回第 1、第 2、第 3、第 4....等发生日期。

4

1 回答 1

3

评论中列出的副本(获取明年星期一和星期二的所有日期)有一个相当冗长的答案。strtotime这是使用相对格式的简洁解决方案:

// Initialize our dates to UNIX timestamps
$startDate = strtotime( 'next Tuesday', strtotime($startDate) );
$endDate= strtotime($endDate);

// Output all Tuesdays prior to our end date
while ($startDate < $endDate) {

    echo date('n/j/Y', $startDate ). "\n";

    // Get next Tuesday relative to last Tuesday
    $startDate = strtotime( 'next Tuesday', $startDate );
}

以今天 ( $startDate) 和从今天起 2 个月 ( $endDate) 为例,上述输出:

4/17/2012
4/24/2012
5/1/2012
5/8/2012
5/15/2012
5/22/2012
5/29/2012
6/5/2012

在行动中看到它。

注意:确保您使用正确的日期格式来接收准确的结果。

于 2012-04-12T15:17:26.047 回答