【发布时间】:2013-11-14 17:32:08
【问题描述】:
我有一个带有$startDate(即Nov 12, 2013)和$endDate(即January 31, 2014)的ajax 数据对象,我想创建一个如下所示的数组:
array(2013-11-12, 2013-11-13, 2013-11-14, ... , 2014-01-31);
我尝试这样做的方式是:
while($startDate < $endDate){
$day = gmdate('Y-m-d', strtotime('+1 day', strtoTime($data->data['startDate'])));
$daysOfTheWeek[] = $day;
}
但脚本在 30 秒后超时。所以我想知道这样做的正确方法是什么。
【问题讨论】:
-
set_time_limit(0);但是哦,那是一个无限循环。不要让你的服务器崩溃 -
查看
DateInterval类:us1.php.net/dateinterval -
您永远不会更改 startdate,那么您为什么希望它永远不会小于 enddate?永久循环
-
如果您使用 php 5.3 查找 datetime 对象,则有一个 diff 方法返回一个 datetimeinterval 对象,您可以使用 format 方法进行格式化。