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()是有点吓人的。