Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Помошь с массивом дат для datepicker


alonealien
 Поделиться

Рекомендованные сообщения

нужна помощь с выводом массива дат в disabledDates datepicker.

есть таблица с датами начала и конца периода, я вывел его на странице с помощью dateperiod, но массив выводится просто в body. нужно пофиксить и вывести его в переменную, которую съест datepicker на схеме product.

 

в контроллере:

$data['dates'] = array();

            foreach ($this->model_catalog_product->getProductDates($this->request->get['product_id']) as $date) {
                $product_dates_data = array();

                $data['dates'][] = array(
                    'date_comein' => $date['date_comein'],
                    'date_out' => $date['date_out'],
                );

                $begin = new DateTime($date['date_comein']);
                $end = new DateTime($date['date_out']);

                $daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);
                
                foreach($daterange as $dater) {
                    echo $dater->format("'Y-m-d'") . ", ";
                }
            }

 

в выводе:

<body>'2021-04-22', '2021-04-23', '2021-04-24', '2021-04-07', '2021-04-08', '2021-04-09', '2021-04-10', '2021-04-11', '2021-04-12', '2021-04-13', '2021-04-14', '2021-04-15', '2021-04-16', '2021-04-06', '2021-04-07', '2021-04-08', '2021-04-09', '2021-04-10', '2021-04-11', '2021-04-12', '2021-04-13', '2021-04-14', '2021-04-15', '2021-04-28', '2021-04-29', '2021-04-30', '2021-05-01', '2021-05-02', '2021-05-03', '2021-05-04', '2021-05-05', '2021-05-06', '2021-05-07', 
<!--[if IE]><![endif]-->
<!--[if IE 8 ]><html dir="ltr" lang="ru" class="ie8"><![endif]-->
<!--[if IE 9 ]><html dir="ltr" lang="ru" class="ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->

<!--<![endif]-->

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sdf</title>

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, alonealien сказал:

 foreach($daterange as $dater) {
                    echo $dater->format("'Y-m-d'") . ", ";
                }

Вы в контроллере выводите до того как подгрузите шаблон. Вместо этого нужно массив $daterange передать в шаблон, например $data['daterange']=$daterange, а в шаблоне уже у вас будет доступна переменная daterange с этими датами, которую можете вывести в нужном месте.

Ссылка на комментарий
Поделиться на других сайтах

8 часов назад, iglin сказал:

Вы в контроллере выводите до того как подгрузите шаблон. Вместо этого нужно массив $daterange передать в шаблон, например $data['daterange']=$daterange, а в шаблоне уже у вас будет доступна переменная daterange с этими датами, которую можете вывести в нужном месте.

ошибка Fatal error: Uncaught Error: Object of class DatePeriod could not be converted to string

уже несколько дней бьюсь над этим вопросом - как бы ни выводил, сыпятся ошибки: то неизвестная переменная, то массив как строка, то  еще какая фигня

 

готов заплатить за решение

Ссылка на комментарий
Поделиться на других сайтах

в начале добавить

$disabled_dates = array();

вашу строку

echo $dater->format("'Y-m-d'") . ", ";

заменить на

$disabled_dates[] = $dater->format('Y-m-d');

в конце

$data['disabled_dates'] = json_encode($disabled_dates);

соответственно в шаблоне у вас должно быть что-то типа

$('#datetimepicker').datetimepicker({
    disabledDates: {{ disabled_dates }}
});

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


17 часов назад, ClayRabbit сказал:

в начале добавить


$disabled_dates = array();

вашу строку


echo $dater->format("'Y-m-d'") . ", ";

заменить на


$disabled_dates[] = $dater->format('Y-m-d');

в конце


$data['disabled_dates'] = json_encode($disabled_dates);

соответственно в шаблоне у вас должно быть что-то типа


$('#datetimepicker').datetimepicker({
    disabledDates: {{ disabled_dates }}
});

 

 

работает

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.