繁体   English   中英

如何选择按Date(Timestapms)分组的所有时间戳PHP / MYSQL

[英]How to Select all Timestamps grouped by Date(Timestapms) PHP/MYSQL

所以我想选择过去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

您必须先设置时间间隔。 之后,您可以从数据库中查询数据,但是在数组中只能为一个键设置一个值。 您的愿望可能无法实现。

尝试以下解决方案,可能对您有帮助:

<?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

*/

?>

更多信息: 如何在php数组中为一个键存储多个值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM