PHP如何将for循环查询数据库得到的日期字符串存入数组并获取首个值
解决方法
你之前得到多个独立单元素数组,是因为你在循环内部每次对单个日期字符串做explode拆分操作,单个日期字符串没有指定分隔符的话拆分结果自然只有一个元素,不需要做拆分操作,直接把每次循环拿到的日期存入统一数组即可。
第一步:构建统一的日期数组
在循环外初始化空数组,循环内将每次获取到的日期字符串追加到数组中:
$fd = new FormData("database_form"); $links = $another_dbForm->get_links('call_logs', $fd->get_field_struct('datetime')); // 初始化空数组存储所有日期 $dateList = []; for($i=0; $i<count($links); $i++) { $fd->set_ticket_id( $links[$i] ); $logDate= $fd->get_field('datetime'); // 追加当前日期到数组 $dateList[] = $logDate; } // 可打印验证数组结构 // var_dump($dateList);
第二步:提取日期计算时间间隔
构建完成的数组可以通过下标直接取出对应日期,下标从0开始计数,你可以用PHP内置的DateTime类快速计算时间间隔:
// 提取第一个日期:2021-09-14 15:23:27 $start = new DateTime($dateList[0]); // 提取第四个日期:2021-09-24 16:07:50 $end = new DateTime($dateList[3]); // 计算间隔 $diff = $start->diff($end); // 按需输出间隔信息 echo "间隔:".$diff->d."天".$diff->h."小时".$diff->i."分钟"; // 如果需要总秒数/总小时数,也可以转时间戳计算 $totalSec = strtotime($dateList[3]) - strtotime($dateList[0]); $totalHour = $totalSec / 3600;
内容的提问来源于stack exchange,提问作者Darren
相关产品推荐
相关产品推荐

