php - 如何选择按日期分组的所有时间戳(Timestapms) PHP/MYSQL

标签 php mysql json

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

*/

?>

更多信息:how to store multiple values for one key in php array

关于php - 如何选择按日期分组的所有时间戳(Timestapms) PHP/MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50966961/

相关文章:

java - 使用 POST 发送 xml 文件并在 php 中接收

php - MySQL5.6 vs Percona 5.7 隐式转换问题

php - 图形/ Canvas /div的动态改变

mysql - 如何优化我的查询(排名查询)?

mysql - Django 1.1 中大型数据库的 manage.py 数据转储(创建测试数据库)

json - 如何将bash和curl与转义的json一起使用?

json - 如何显示自定义验证错误消息

php - Symfony2 捆绑系统

php - 将 mySQL_pconnect 转换为 mySQLi_connect 时出现问题

python - 不同配置格式的优缺点?