PHP библиотека для заполнения массива дат за указанный период?

У меня много таких ценностей:

+---------------------+-------+
|        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 для работы с такими вещами?

-2

Решение

Хорошо, я не могу получить библиотеку, но это очень просто сделать в 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 только для этой цели, вы можете даже сократить ее еще …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]