我正在使用此代码add a week
到日期:
$date1 = "2009-10-11";
$d = new DateTime($date1);
$d->modify( '+1 week' );
echo $d->format( 'Y m d' ), "'n";
它运行良好,但希望添加以下功能:
$startDate = "2009-10-11";
$endDate = "2010-01-20";
并且想要创建一个数组来保存这些日期之间的所有+1周。我该怎么做?
这里有一种方法:
$startDate = "2009-10-11";
$endDate = "2010-01-20";
$dates = array();
$temp = strtotime($startDate);
do {
$dates[] = date("Y-m-d", $temp);
$temp = strtotime("+1 week", $temp);
} while ($temp < strtotime($endDate));
print_r($dates);
你可以在这里看到一个演示
日期可以转换为时间戳。时间戳非常适合进行比较,因为它们基本上只是整数。
作为一个快速的"虚拟"解决方案,我会把你的日期都转换成时间戳,然后设计一个这样的循环(伪代码):
timestamp = start_timestamp
WHILE timestamp < end_timestamp
timestamp = timestamp + 1 week
dates[] = timestamp
END WHILE