php - 使用 foreach 为每组记录指定时间戳
问题描述
如果我有 20 行,则每 5 行在不同的小时内都有一个创建时间戳。(例如,下午 4 点创建了 5 行,下午 5 点创建了接下来的 5 行……等等)。我想创建一个 foreach 来显示 20 行,但在每 5 行的顶部,我想指定这些属于 4PM 或 5 PM 等,这是数据库中的时间戳。我只是想知道如何做到这一点的想法。
例如,以下查询将带来 20 行,其中每 5 行将具有不同的时间戳:
$fwinners2 = Answer::where('ttype',$id)
->where('qrank',2)
->orderby('rank', 'asc')
->get();
以下是刀片中的 foreach :
@foreach($fwin2 as $fwin2)
<div>
<a>{{$fwin2->body}}</a>
</div>
@endforeach
解决方案
在纯 PHP 中,这样的事情可以解决问题(假设行按时间戳排序,即$row['timestamp']
unix 时间戳,否则将其包装strtotime
或转换为 unix 时间戳):
<?php
// ... select rows from DB here
$currentHour = null;
foreach ($rows as $row){
// get current row's hour and am/pm, and check if its different than previous, if yes, echo it
$rowHour = date('h A',$row['timestamp']);
if ($rowHour !== $currentHour){
echo $rowHour;
$currentHour = $rowHour;
}
// display row here
}
推荐阅读
- javascript - eslint错误一元运算符'++'使用了no-plusplus
- python - 参数估计和最小二乘法最小化 - Python 和 Gekko
- regex - 从表 Greenplum 中解析数据
- python - Tkinter:返回 self.func(*args) 异常
- gcc - Autofdo 是否支持 -fprofile-reorder-functions?
- open-liberty - 到期时自动刷新 OpenId 访问令牌
- python - 如何在模型保存方法中获取多对多字段数据
- apache-spark - 使用 spark 编写 parquet 文件时设置数据类型
- python - 差值最接近特定数字的值
- mongodb - 在 mongoDB 连接字符串中指定多个服务器会阻止其连接,但仅指定主服务器有效