pickadate.js , отключить даты из массива php

#javascript #php #jquery #arrays

#javascript #php #jquery #массивы

Вопрос:

Я пытаюсь отключить даты в pickadate.js календарь с массивом, который я передал со своего контроллера (используя Laravel4).

Я могу отключить дату просто отлично, отправив статическую дату в javascript с контроллера (используя Jeffrey Ways great PHP-vars-to-JS):

 JavaScript::put([
        'disabledDates' => array(2014,6,20)
        ]);
  

Мой файл .js:

         disable: [
        [2014,7,19],
        [2014,7,12],
        disabledDates
    ],
  

Однако это отключает только первую дату, и если я попытаюсь передать несколько дат в свой массив, только они не будут отключены в календаре. Я попытался выполнить следующее:

 JavaScript::put([
        'disabledDates' => array(2014,6,20, 2014,6,21)
        ]);
  

The pickadate.js скрипт принимает только указанный выше формат для отключения дат, и я думаю, что это противоречит тому, как в идеале должен быть построен массив?

Кто-нибудь может мне помочь с правильным форматом для этого?

Заранее благодарю вас.

Комментарии:

1. Итак, первый работает правильно?, я имею в виду это: 'disabledDates' => array(2014,6,20)

2. Эй, Роберт, да, это работает! Однако я не могу ввести несколько дат таким образом, поскольку он принимает только первую часть.

3. Если вы используете второй способ и помещаете в консоль javascript: disabledDates каков результат?

4. Он выводит следующее: [2014, 6, 20, 2014, 6, 20]

Ответ №1:

Продолжение здесь, поскольку мне удалось решить проблему с помощью друга:

Подход заключается в:

В моем контроллере:

     $dates = Booking::lists('date');

    JavaScript::put([
        'disabledDates' => $dates
    ]);
  

В моей модели:

     public function getDateAttribute($value)
    {
    return explode('-', date('Y-m-d', strtotime($value)));
    }
  

Это возвращает даты в виде массива, который затем может использовать календарь. Надеюсь, это кому-нибудь поможет :).