所以我想选择过去7天中每一天的所有时间戳并将它们放在json数组中,我正在使用的代码是:
$sql = "SELECT Time from gps_rt WHERE UID='$uid' group by Date(Time) LIMIT 7";
$result = $link->query($sql);
while ($pdays = mysqli_fetch_array($result)) {
$days['Durees'][$i] = $pdays['Time'];
$i=$i+1;
}
echo json_encode($days);
问题在于此代码仅向我显示每天的第一个时间戳,对我来说,我需要获取每天的所有时间戳:
Durees
0 "2018-06-14 12:44:03"
1 "2018-06-15 11:06:07"
2 "2018-06-16 20:40:08"
3 "2018-06-17 18:33:44"
4 "2018-06-18 08:35:44"
5 "2018-06-19 08:09:46"
6 "2018-06-20 10:11:46"
我想要的是:
Durees
0 "2018-06-14 12:44:03"
"2018-06-14 12:44:13"
"2018-06-14 12:48:03"
.
.
.
1 "2018-06-15 11:06:07"
"2018-06-15 11:08:17"
.
.
.
2 "2018-06-16 20:40:08"
etc
答案 0 :(得分:1)
您必须先设置时间间隔。之后,您可以从数据库中查询数据,但是在数组中只能为一个键设置一个值。您的愿望可能无法实现。
尝试此解决方案,可能会为您提供帮助:
<?php
/* Detect first and last timestamp of the day (7 days before) -- */
$current_day_start = strtotime(date("d.m.Y 00:00:00"));
$current_day_end = strtotime(date("d.m.Y 23:59:59"));
$seven_days_before_start = $current_day_start - ( 7 * 86400 );
$seven_days_before_end = $current_day_end - ( 7 * 86400 );
/* Define the Array -------------------------------------------- */
$days = array();
/* Create loop for last 7 days --------------------------------- */
for ($i = 0; $i < 7; $i++) {
$sql = "SELECT Time from gps_rt WHERE UID='$uid' AND Time > '$seven_days_before_start' AND Time < '$seven_days_before_end'";
$result = mysqli_query($link, $sql);
while ($pdays = mysqli_fetch_array($result)) {
$days[$i]['Durees'][] = $pdays['Time'];
}
$seven_days_before_start += 86400;
$seven_days_before_start += 86400;
}
/* Generate JSON content --------------------------------------- */
json_decode($days);
/* I hope the result is like this: -----------------------------
$days [ "NUMBER OF DAYS" ] [ "Durees" ] [ "NUMBERS" ]
$days = Array
0 -> Durees
0 -> "2018-06-14 12:44:03"
1 -> "2018-06-14 12:44:13"
3 -> "2018-06-14 12:48:03"
.
.
.
1 -> Durees
0 -> "2018-06-15 11:06:07"
1 -> "2018-06-15 11:08:17"
.
.
.
2 -> Durees
2 -> "2018-06-16 20:40:08"
etc
*/
?>