1
jianghu52 2015-01-11 18:27:24 +08:00
如果不考虑性能的话,我一般是这么做的。
数据库查两遍,第一遍,查询所有的记录,日期格式为20150111,赋值给detail_list 第二遍,查询有数据的所有日期,group by一下,得到的数据是 20150111,20150110,20150109这样的一组数据。赋值给date_list 之后的代码如下 foreach( $date_list as $one_date ) { print($one_date);//输出 日期 foreach( $detail_list as $one_detail ) { if($one_date['date'] == $one_detail['date']){//相同日期的情况下输出具体内容 print($one_detail); } } } 如果你要考虑性能的话,也可以写sql文,得到的格式类似于 0000 20150111//这一行就需要你自己添加出来,这一条记录实际在表中是不存在的 1 20150111 2 20150111 0000 20150110 1 20150110 2 20150110 抱歉sql不是很好,一下想不出要怎么写。但是我保证这个sql一定能写出来,因为我用到过。 |
2
hiro0729 2015-01-11 22:43:37 +08:00
倒序的数据取出来后,直接循环判断就行了吧。
用php的Carbon日期处理类,先在循环外层取一个当前时间的变量。然后在循环内部用diffInDays方法算出数据中的时间和当前时间相差的天数。 相差天数为0是今天的数据,1为昨天.....一次类推,在if ,else if里你想为数据多填个“今天”的标记也好,还是归类分组放入新的array里也好,想怎么样就怎么样,不需要考虑sql怎么写了 |