我想查找日期范围之间一天的日期出现次数。
例如 date1 = 04/12/2012 (星期四) 和 date2 = 04/30/2012。
所以 PHP 函数应该返回两个日期:
19/12/2012 (开始日期后的第一个星期四) 和 26/12/2012 (第二个星期四 在开始日期之后)。
对于大日期范围函数应返回 1st、2nd、3rd、4th....以此类推。
注释中列出的重复项(获取下一年星期一和星期二的所有日期)有一个相当冗长的答案。以下是使用相对格式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
看到它的实际效果。
注意:请确保您使用正确的日期格式以获得准确的结果。