我的資料庫中有一個表,用于存盤統計資料。結構是這樣的:
---------------------------------------------
| 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* |
---------------------------------------------
我試圖在按timeColumn月份分組的 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
}
}
年末也有問題,因為我的嘗試忽略了年份的變化。
uj5u.com熱心網友回復:
您的想法很好,因此我對其進行了修改,使其每個月都填充一個陣列及其相關的旅行時間:
$monthlyTravelTimes = [];
foreach($travelTimes as $travelTime) {
$month = date("m", strtotime($travelTime["time"]);
$monthlyTravelTimes[$month] = $travelTime;
}
您可以通過以下方式獲取當月的旅行時間:
$monthlyTravelTimes[date('m')];
注意:這根本不能處理年份,但可以通過替換'm'為'Y-m'.
uj5u.com熱心網友回復:
有人添加了一個后來被洗掉的答案,但他的想法幫助找到了解決方案:
SELECT *, MONTH(time) as timeMonth, YEAR(time) as timeYear FROM travelTimes ORDER BY time;
有了這個,我可以簡單地比較 PHP 中的字串,例如:
if($travelTime["timeYear"] == "2021" && $travelTime["timeMonth"] == "10"){}
沒有問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345906.html
