Php 将开始日期和结束日期之间的所有日期获取到数组中

Php 将开始日期和结束日期之间的所有日期获取到数组中,php,arrays,date,Php,Arrays,Date,我无法将结果插入数组 这是我的代码: $listData2=""; $end = date("n/d/Y",strtotime($row['dDate'])); $start = date("n/d/Y",strtotime($row['aDate'])); $datediff = strtotime($end) - strtotime($start); $datediff = floor($datediff/(60*60*24)); for($i = 0; $i <=- $date

我无法将结果插入数组

这是我的代码:

$listData2="";

$end = date("n/d/Y",strtotime($row['dDate']));
$start = date("n/d/Y",strtotime($row['aDate']));

$datediff = strtotime($end) - strtotime($start);
$datediff = floor($datediff/(60*60*24));

for($i = 0; $i <=- $datediff + 1; $i++) {
    $dateArr=date("n/d/Y", strtotime($start . ' + ' . $i . 'day'));
    $listData2[]=$dateArr;
}
$listData2=”“;
$end=日期(“n/d/Y”,标准时间($row['dDate']);
$start=日期(“n/d/Y”,标准时间($row['aDate']);
$datediff=strottime($end)-strottime($start);
$datediff=楼层($datediff/(60*60*24));

对于($i=0;$i您有一种复杂的方法来实现这一点,因此我将向您展示如何将两个日期之间的所有日期放入一个数组:

$listData2 = [];
$start     = new DateTime($row['dDate']);
$end       = (new DateTime($row['aDate']))->modify('+1 day');
$interval  = DateInterval::createFromDateString('1 day');
$period    = new DatePeriod($start, $interval, $end);

foreach ($period as $dt) {
    $listData2[] =  $dt->format("n/d/Y");
}

这将初始化一个空数组以存储日期(以空字符串而不是数组开始),并将开始日期和结束日期创建为对象(而不是您创建的非标准字符串。然后,它会创建一个表示1天的对象和一个要包装的对象,以供我们使用。然后,我们循环使用DatePeriod对象并将它们添加到数组中

(您还有一个无效的运算符(
),下面是一个示例代码:

$listData2 = array();
$end = date("n/d/Y",strtotime($row['dDate']));
$start = date("n/d/Y",strtotime($row['aDate']));
for(;;) {
    $listData2[]=date("n/d/Y", strtotime($start));
    $start = date("Y-m-d", strtotime("+1 day", strtotime($start)));
    if(strtotime($start)>strtotime($end)) break;
}

我的代码不可能在数组中吗?我无法理解你使用的编码…此代码确实将其放入数组中。你阅读了全部答案吗?我添加了一个演示,这样你就可以看到它在工作。希望这能帮助你理解。@johncode你在那里有一个奇特的演示按钮:D(BTW:<代码> FY:你可以接受如何帮助你最多并且解决你的问题的答案!()你可以为所有的问题做这件事,如果有这样的答案,请考虑阅读下一个问题(或者改进你当前的问题):你滥用STRTOTIME()是有点吓人的。