我将此代码用于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周。我怎么能这样做?
答案 0 :(得分:2)
这是一种方法:
$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);
您可以看到demo here
答案 1 :(得分:0)
日期可以转换为时间戳。时间戳很适合比较,因为它们基本上只是整数。
作为一个快速的解决方案,我要做的是将你的日期转换为时间戳,然后设计一个这样的循环(伪代码):
timestamp = start_timestamp
WHILE timestamp < end_timestamp
timestamp = timestamp + 1 week
dates[] = timestamp
END WHILE