我有很多这样的价值观:
+---------------------+-------+
| Date | value |
+---------------------+-------+
| 2015-05-22 13:10:59 | 23,99 |
| 2015-05-22 13:20:19 | 23,8 |
| 2015-05-26 17:30:00 | 8 |
| 2015-05-26 19:00:00 | 125 |
| 2015-05-27 05:00:00 | -73 |
| 2015-05-27 06:00:00 | 30 |
| 2015-05-27 15:00:00 | 32 |
| 2015-05-27 16:00:00 | 33 |
| 2015-05-28 10:45:00 | 3 |
| 2015-05-28 10:50:00 | 3 |
+---------------------+-------+
考虑到一段时间(2015-05-20 - > 2015-05-30),为了在列表中包含该期间的所有日期,我需要填写剩余的日期。 为了更好地解释,我想要这样的东西:
+---------------------+-------+
| Date | value |
+---------------------+-------+
| 2015-05-20 00:00:00 | null |
| 2015-05-21 00:00:00 | null |
| 2015-05-22 00:00:00 | null |
| 2015-05-22 13:10:59 | 23,99 |
| 2015-05-22 13:20:19 | 23,8 |
| 2015-05-23 00:00:00 | null |
| 2015-05-24 00:00:00 | null |
| 2015-05-25 00:00:00 | null |
| 2015-05-26 00:00:00 | null |
| 2015-05-26 17:30:00 | 8 |
| 2015-05-26 19:00:00 | 125 |
| 2015-05-27 00:00:00 | null |
| 2015-05-27 05:00:00 | -73 |
| 2015-05-27 06:00:00 | 30 |
| 2015-05-27 15:00:00 | 32 |
| 2015-05-27 16:00:00 | 33 |
| 2015-05-28 00:00:00 | null |
| 2015-05-28 10:45:00 | 3 |
| 2015-05-28 10:50:00 | 3 |
| 2015-05-29 00:00:00 | null |
| 2015-05-30 00:00:00 | null |
+---------------------+-------+
我知道如何通过代码执行此操作,但它有很多缺点,所以我正在寻找一个库来执行此操作。
任何关于任何PHP库的想法都可以使用这样的东西吗?
答案 0 :(得分:1)
好的我无法让你成为一个库,但是在php中这样做真的很简单,只需使用一个函数,它给你一个包含所有日期的数组:
function getDatesFromRange($start, $end){
$dates = array($start);
while(end($dates) < $end){
$dates[] = date('Y-m-d', strtotime(end($dates).' +1 day'));
}
return $dates;
}
将结果用作键:
$dateArray = array_fill_keys(getDatesFromRange($start, $end), null);
然后使用mysql查询的结果来设置实际值。所以这不到10行代码,我认为一个库将是Overkill .. 如果您仅为此目的使用getDatesFromRange函数,您甚至可以将其缩短...