You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将DatePeriod生成的多段日期批量存入数组?

解决DatePeriod多组日期存入数组的问题

你的问题核心是while循环中每次都会覆盖$periodLD变量,且遍历日期的foreach放在了循环外部,导致最终仅处理了SQL返回的最后一组起止日期生成的序列。

直接修改代码,将遍历DatePeriod的逻辑移入while循环内部,每生成一组日期序列就追加到目标数组中即可:

// 先初始化目标数组
$datesLD = [];

while($rowLD = $getDataLD->fetch_assoc()) { 
  $strDateFrom = $rowLD['ld_time_start'];
  $strDateTo = $rowLD['ld_time_end'];
  $periodLD = new DatePeriod(
      new DateTime($strDateFrom), 
      new DateInterval('P1D'), 
      new DateTime($strDateTo.' +1 day')
  );
  
  // 把当前组的日期逐个加入数组
  foreach ($periodLD as $dateLD) {
      $datesLD[] = $dateLD->format("Y-m-d");
  }
}

这样每遍历到一组起止日期,对应的日期序列就会被完整追加到$datesLD数组中,不会丢失任何一组数据。

内容的提问来源于stack exchange,提问作者Chuche Saku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:27:30