如何在PHP中按日期(今天,昨天,8月29日,28等)对SQL中的foreach项目进行排序?

新手

抱歉,我无法在标题中对其进行更多说明,但这是交易。

我有一个SQL表,其中的项目具有经典的日期列,在其中按日期在循环中对它们进行了排序。现在,我想在echo现有循环中添加一个,以在循环表中显示一行,其中将显示今天添加的项目,昨天添加的项目,依此类推。

这就是我希望它在循环时的外观。(我得到的最接近的是它每秒循环并在每个项目中添加回声部分,这完全是一团糟)

PS:阅读谷歌也许应该作为usortif内现有的foreach

----------------------------
Table
----------------------------
echoed `<tr><td>Added: today<td></tr>`
---------------------------
Item 1
Item 2
Item 3
---------------------------
echoed `<tr><td>Added: yesterday<td></tr>`
---------------------------
Item 4
Item 5
Item 6
Item 7
---------------------------
echoed `<tr><td>Added: 29 Aug<td></tr>`
---------------------------
Item 9
Item 10
Item 11
etc

编辑:日期格式不必是8月29日。仅供参考,我自己会对其进行调整。我只需要有关如何实现此逻辑的帮助。

佳美

您应该首先在数据库中对它们进行排序!

然后,当您遍历所有项目时,您基本上会记得上一次显示哪个部分,并且在输出新部分的第一行之前,应输出部分标题:

$current = null;

foreach($rows as $row) {
    $display = date_create($row['timestamp'])->format('Ymd');  // or whatever!
    // it must consistently return something that makes the following consistent:
    if($display != $current) {
        // add separator that contains "today" or "yesterday" or the date 
        echo '<tr><td>'.$display.'</td></tr>';
        $current = $display;
    }

    // display the actual row here
}

如果您还想显示数据库中不存在的日期的分隔行,则问题会变得更加棘手。然后,您将必须首先创建一个日期对象,并一次减去一天,直到该日期与行日期匹配,并相应地输出分隔符。

update:特殊显示(请注意,$today并且$yesterday必须是简单类型,例如string或int或类似的东西才能起作用):

// before the loop!
$today = date_create()->format('Ymd');
$yesterday = date_create("-1 day")->format('Ymd');
$replacements = [
    $today => 'today', // or whatever
    $yesterday => 'yesterday', // or whatever
];

在循环中回显时$display

echo '<tr><td>'.($replacements[$display] ?? $display).'</td></tr>';

如果应该替换格式化的日期,则外观会如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Angular中按日期字符串(昨天,今天,本月,上个月)过滤

如何在 PHP 中按日期对 MySQL 条目进行排序?

如何在Power Bi中按ID减去按今天计数分组的昨天计数?

如何在Python中按日期对DataFrame进行排序?

如何在MongoDB中按日期对集合进行排序?

如何在python中按日期时间对列表进行排序?

如何在JavaScript中按日期对数组进行排序?

如何在JQuery中按日期对xml数据进行排序

如何在 Foreach PHP 中按数字值对 JSON 解码进行排序

从今天开始按一年中的日期排序,然后循环到昨天

如何在HTML的两个表格单元格中插入昨天和今天的日期?

如何在kotlin中對今天的日期進行排序

如何在sql中按组对行进行排序

如何在PHP中按值对多维数组进行排序

如何在SQL Server中获取今天午夜到昨天午夜的数据

如何在RealmResults中按日期排序

如何在Perl中获取昨天的日期?

如何在golang中获取昨天的日期?

如何在Googlesheet中插入昨天的日期

如何在Unix中获取昨天的日期

如何使用sql中具有“日期格式”的列按“月”排序?

如何在datetime SQL列中按日期和这些日期的8小时间隔进行分组和计数?

如何在ListView中对项目进行排序?

从PHP中读取今天和昨天的文件

如何在Java中按日期对目录中的文件进行排序?

9 月 1 日在 8 月 31 日之前在 Zeppelin 按日期排序的条形图中,请问如何解决?

按日期对php中的3个多维数组进行排序

无法在PHP中按日期对多维数组进行排序

PHP中按日期对数组进行排序