tva*_*son 11
假设这些是日期对象,从$ fromdate开始,向它添加一天,直到该日期为星期日,并且只要日期在$ todate之前.在您找到的每个星期日添加7天,添加该日期并继续,只要新日期在$ todate之前.跟踪以这种方式找到的每个日期.
使用此功能:
function getDateForSpecificDayBetweenDates($startDate, $endDate, $weekdayNumber)
{
$startDate = strtotime($startDate);
$endDate = strtotime($endDate);
$dateArr = array();
do
{
if(date("w", $startDate) != $weekdayNumber)
{
$startDate += (24 * 3600); // add 1 day
}
} while(date("w", $startDate) != $weekdayNumber);
while($startDate <= $endDate)
{
$dateArr[] = date('Y-m-d', $startDate);
$startDate += (7 * 24 * 3600); // add 7 days
}
return($dateArr);
}
Run Code Online (Sandbox Code Playgroud)
函数调用获取2010年所有星期日的日期:
$dateArr = getDateForSpecificDayBetweenDates('2010-01-01', '2010-12-31', 0);
print "<pre>";
print_r($dateArr);
Run Code Online (Sandbox Code Playgroud)
重新:
Array
(
[0] => 2010-01-03
[1] => 2010-01-10
[2] => 2010-01-17
[3] => 2010-01-24
[4] => 2010-01-31
[5] => 2010-02-07
................
................
................
[47] => 2010-11-28
[48] => 2010-12-05
[49] => 2010-12-12
[50] => 2010-12-19
[51] => 2010-12-26
)
Run Code Online (Sandbox Code Playgroud)