Итак, проблема, которую вы определили, связана с вашим циклом for
, который дает неожиданные результаты, вы присваиваете значение $br
после каждой итерации, поэтому при завершении цикла у вас есть последняя дата хранится в $br
.
Я бы порекомендовал следующее решение, так как позже будет проще всего манипулировать и дать вам самый чистый код. Заменив $br
на Array , вы можете добавлять к нему элемент после каждой итерации. При вставке в базу данных использование функции implode позволит вам привести ее в соответствие с вашими предпочтениями без использования хакерских манипуляций со строками.
$dr = [];
for ($i = $datea; $i <= $dateb; $i++)
{
array_push($dr, date("Y-m-d", strtotime($i)));
}
Теперь, когда вы идете вставлять в свою таблицу, ссылаться на массив следующим образом:
$drString = implode(',', $dr) # (String) "date,date,date,date"
Дальнейшие советы
В случае, если вы используете схему SQL Date, как слегка подсказано в вопросе, сохранение диапазонов не является для них значением по умолчанию. Поэтому сохранение в виде Text или Varchar может быть вашим лучшим вариантом, затем итерация по строке диапазона («дата, дата, дата») и создание нового Дата PHP-объект для каждой разнесенной строки в отдельности.