关于一个时间补充的问题

来源:互联网 发布:登录别人淘宝有提示吗 编辑:程序博客网 时间:2024/06/06 17:11

一个困扰了我两天的问题,别人一个小时就搞定了,究其原因是什么呢,其实就是一个函数我不知道,但是那个函数真的很常用。

问题:一组数据,其中有时间和对应的项目名称,根据日期进行统计,将没有数据的对应日期显示在用户前端,统计数目记为0?

解决此问题的逻辑:使用php在后端解决比使用mysql在sql语句中解决方便和简单很多,

首先通过查询获取到相应的数据,将数据放入到一个数组中。

第二,通过对时间段进行循环叠加,对获取的数组进行遍历,将其中的时间字段取出来与时间段中的数据进行对比,如果不同,定义一个新的数组,将此时间段中不同的值放入到数组中,并同时给新的数组中加入统计的字段赋值为0,将新的数组加入到查询的数组中,使用array_push()函数即可,我没有做出来的主要原因。

第三,将新的数组输出即可。

代码添加了对时间进行排序的功能

$start = strtotime($result[0]['jd_info_add_time']);//$result查询生成的数组

$end = time();
            for($i=$start;$i<=$end;$i+=86400)
            {
                $s = true;
                foreach($result as $key=>$val)
                {

                    if(in_array(date('Y-m-d',$i),$val))
                    {
                        $s = false;

                    }
                }
                if($s){

                    $arr['jd_info_add_time'] = date('Y-m-d',$i);
                    $arr['count'] = '0';
                    array_push($result, $arr);
                }
                $a[] = date('Y-m-d',$i);
            }
            krsort($a);
            $new_data = [];
            foreach($a as $t)    //排序
            {
                foreach($result as $key=>$val)
                {
                    if($val['jd_info_add_time'] == $t)
                    {
                        $new_data[] = $val;
                    }
                }
            }
            $data['rows'] = $new_data;


1 0