首页 > 解决方案 > 如何按月对 PHP 中的 SQL 记录进行排序?

问题描述

我的数据库中有一个表,用于存储统计数据。结构是这样的:

---------------------------------------------
| travelTimes                               |
---------------------------------------------
| ID       | INT(6)  | *Primary key*        |
| goesfrom | INT(6)  | *location ID*        |
| goesto   | INT(6)  | *location ID*        |
| length   | INT(6)  | *time it takes*      |
| time     | Date    | *date of the record* |
---------------------------------------------

我试图在按time列月份分组的 PHP 页面上显示这些数据,将这些数据加载到图表中(如果我有来自 3 个不同月份的记录,则应该有 3 个不同的图表)。

你认为这个问题的最佳解决方案是什么?

我曾尝试将表加载到 PHP 数组(关联),并以这种方式比较日期,但据我所知,php 非常独特。所以这不起作用:

foreach($travelTimes as $travelTime){
    if(date("m", strtotime($travelTime["time"])) == date("m")){
        // I would sort here the current month's records
    }
}

年末也有一个问题,因为我的尝试忽略了年份的变化。

标签: phpsqldate

解决方案


你的想法是个好主意,所以我对其进行了调整,使其每月填充一个数组及其相关的 travelTimes:

$monthlyTravelTimes = [];
foreach($travelTimes as $travelTime) {
    $month = date("m", strtotime($travelTime["time"]);
    $monthlyTravelTimes[$month] = $travelTime;
}

您可以通过以下方式获取当月的旅行时间:

$monthlyTravelTimes[date('m')];

注意:这根本不处理年份,但可以通过替换来轻松'm'适应'Y-m'


推荐阅读