电话
400 9058 355
本文介绍在 laravel 中将数据库查询出的完整时间戳(如 `2025-02-21 07:40:16`)清洗为纯时间格式(如 `07:40:16`)的实用方法,重点讲解 eloquent 模型时间属性的格式化技巧及代码优化要点。
在 Laravel 中处理时间字段时,直接使用 pluck() 获取键值对虽便捷,但会丢失 Eloquent 模型实例的时间对象能力,导致无法调用 ->format() 等日期方法。因此,清洗时间格式的关键前提是确保 created_at 字段以 Carbon 实例形式存在——这要求我们避免提前 ->toArray() 或 ->pluck(),而应先遍历 El

以下是推荐的优化写法(已修复原答案中的变量名错误,并增强健壮性):
public function singleDev(Device $deviceID)
{
// 使用 select() 明确字段,提升可读性与性能
$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) {
// ✅ 正确:利用 Eloquent 自动转换的 Carbon 实例格式化时间
$time_array[] = $item->created_at->format('H:i:s');
$rssi_array[] = $item->RSSI;
// ⚠️ 注意:原代码中此处误用了 $value,应为 $item->RSSI
if ($item->RSSI < -60) {
$cnt++;
if ($cnt >= 2) {
// 可在此处添加触发逻辑,如告警、日志等
}
}
}
// dd($time_array); // 示例输出:['07:40:16', '07:41:22', ...]
return view('backend.auth.user.singleDevice', compact('time_array', 'rssi_array'));
}关键优化说明:
通过以上方式,你不仅能精准提取 HH:ii:ss 格式的时间字符串,还能保持代码的可维护性与 Laravel 生态的一致性。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...