php - 如何按月对 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
}
}
年末也有一个问题,因为我的尝试忽略了年份的变化。
解决方案
你的想法是个好主意,所以我对其进行了调整,使其每月填充一个数组及其相关的 travelTimes:
$monthlyTravelTimes = [];
foreach($travelTimes as $travelTime) {
$month = date("m", strtotime($travelTime["time"]);
$monthlyTravelTimes[$month] = $travelTime;
}
您可以通过以下方式获取当月的旅行时间:
$monthlyTravelTimes[date('m')];
注意:这根本不处理年份,但可以通过替换来轻松'm'
适应'Y-m'
。
推荐阅读
- vue.js - Vue-cli 全局更改对象值
- visual-studio-code - 如何在 Visual Studio Code 中使用 Flutter 的 Widget Inspector?
- ios - swift:守卫“让自我= ...”的快捷方式?
- node.js - 对于 angular 4 的现有项目,安装 npm 失败
- pdf - Datatable 将通用数据导出到表外
- javascript - PaperJS如何在组项目中找到离鼠标事件最近的项目
- swift4.2 - Swift 4.2.1 使用 Xcode 10.1 请求 JSON
- postgresql - 替换二维数组中的元素
- angularjs - ag-grid + angularJS 标题和用户可编辑的单元格
- javascript - 使用javascript的两个数字的乘积