如何在 Laravel 中清洗数据库查询返回的时间数组
发布时间 - 2026-01-30 00:00:00 点击率:次本文介绍如何将 laravel 查询结果中包含完整时间戳(如 `2025-02-21 07:40:16`)的键或字段,提取并格式化为仅保留时分秒(如 `07:40:16`)的干净数组,适用于图表渲染、前端展示等场景。
在 Laravel 中处理数据库时间字段时,常需对原始 created_at 等 Carbon 实例进行格式化清洗,而非依赖字符串截取。原代码使用 pluck('RSSI', 'created_at') 将时间作为数组键,虽简洁但不利于后续时间格式化(因键无法直接调用 ->format() 方法)。更推荐的方式是显式获取模型实例,再逐项调用 Carbon 的 format() 方法。
以下是优化后的完整实现:
public function singleDev(Device $deviceID)
{
// 使用 select 明确字段,避免冗余数据;get() 返回 Collection
$data = DataFromRasp::select('RSSI', 'created_at')
->where('MAC', 'C4:A5:DF:24:05:7E')
->get();
$time_array = [];
$rssi_array = [];
$cnt = 0;
foreach ($data as $item) {

// ✅ 安全提取并格式化时间:Carbon 实例支持 format()
$time_array[] = $item->created_at->format('H:i:s');
$rssi_array[] = $item->RSSI;
// ⚠️ 注意:原代码中 if($value < -60) 的 $value 未定义,应改为 $item->RSSI
if ($item->RSSI < -60) {
$cnt++;
if ($cnt >= 2) {
// 可在此添加触发逻辑,如告警、记录等
}
}
}
// 调试输出清洗后的时间数组(如 ['07:40:16', '07:41:22', ...])
dd($time_array);
return view('backend.auth.user.singleDevice', compact('time_array', 'rssi_array'));
}关键改进说明:
- 避免 pluck() 作键值映射:pluck('RSSI', 'created_at') 会将 created_at 的原始字符串(如 "2025-02-21 07:40:16")直接用作数组键,而该键无法链式调用 Carbon 方法;改用 get() 获取模型集合,确保 created_at 是可操作的 Carbon 实例。
- 正确使用 Carbon 格式化:$item->created_at->format('H:i:s') 输出 24 小时制时分秒(如 07:40:16);若需 12 小时制加 AM/PM,可用 'g:i:s A'。
- 修复变量引用错误:原循环中 if ($value RSSI。
-
性能提示:若数据量较大,可考虑使用 map() 链式处理替代 foreach,提升可读性:
$time_array = $data->map(fn($item) => $item->created_at->format('H:i:s'))->values()->toArray(); $rssi_array = $data->pluck('RSSI')->toArray();
最终,$time_array 将是一个纯字符串数组,每个元素均为标准化的 HH:ii:ss 格式,可直接传递给前端图表库(如 Chart.js)或用于时间序列分析。
# laravel
# js
# 前端
# mac
# 字符串数组
# carbon
# if
# foreach
# format
# 字符串
# 循环
# map
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Linux系统命令中screen命令详解
如何在Windows环境下新建FTP站点并设置权限?
如何在Windows服务器上快速搭建网站?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何在建站之星网店版论坛获取技术支持?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
EditPlus中的正则表达式实战(5)
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
,在苏州找工作,上哪个网站比较好?
如何在香港服务器上快速搭建免备案网站?
如何快速重置建站主机并恢复默认配置?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
如何在IIS中新建站点并配置端口与物理路径?
在centOS 7安装mysql 5.7的详细教程
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel如何配置和使用缓存?(Redis代码示例)
浅谈javascript alert和confirm的美化
微信小程序 wx.uploadFile无法上传解决办法
高防服务器:AI智能防御DDoS攻击与数据安全保障
Laravel如何使用Vite进行前端资源打包?(配置示例)
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
如何快速搭建自助建站会员专属系统?
linux top下的 minerd 木马清除方法
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何在阿里云域名上完成建站全流程?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
如何快速选择适合个人网站的云服务器配置?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Android自定义控件实现温度旋转按钮效果
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
海南网站制作公司有哪些,海口网是哪家的?
Laravel如何使用查询构建器?(Query Builder高级用法)
Android利用动画实现背景逐渐变暗
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何为不同团队 ID 动态生成多个独立按钮
Laravel如何生成URL和重定向?(路由助手函数)
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
郑州企业网站制作公司,郑州招聘网站有哪些?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
高端网站建设与定制开发一站式解决方案 中企动力
php 三元运算符实例详细介绍


