Интерфейс назначения времени встречи
Вместо обычного элемента HTML формы по заданию интервала времени От и До с datetime picker-ом, требуется предложить современный адаптивный HTML5/Javascript интерфейс, который кроме всего прочего накладывает ограничения на возможные диапазон задания даты.
Ограничения следующие:
1) Праздники, массив holidays
$holidays = array ( "23/05/2014", "28/05/2014", "05/06/2014" , "23/05/2014");
2) Время работы учреждения, массив opening_hours
$opening_hours = array(
0 => array( // Пн c 9 до 20, перерыв с 13 до 14
array('09:00', '13:00' ),
array('14:00', '20:00' )
),
1 => array( '09:00', '20:00' ), // Вт c 9 до 20
2 => array( '09:00', '20:00' ),
3 => array( '09:00', '20:00' ),
4 => array( '11:00', '18:00' ),
5 => array( '11:00', '15:00' )
);
Вс - выходной, т.к. нет данных для ндекса 6. Ещё возможно сокращение "0-4" => array( '09:00', '20:00' ), это для случая, когда все будние дни время работы одинаковое.
3) Время работы конкретного сотрудника working_hours - массив по формату полностью аналогичен предыдущему
4) Время, когда конкретный сотрудник уже занят busy_time:
$busy_time = array (
"23/05/2014" => array( '09:00', '11:00' ),
"28/05/2014" => array( '09:00', '12:00' ),
"05/06/2014" => array( '09:45', '11:30' ),
"13/06/2014" => array( '09:00', '11:00' ),
"23/05/2014" => array( '09:00', '12:00' ),
"23/05/2014" => array( '13:45', '18:15' )
);
Вернуть надо date_time_from и date_time_to .
Имея исходные данные в виде массивов holidays, opening_hours, working_hours и busy_time требуется предложить интерфейс для удобного назначения время встречи.
Примеры:
http://dhtmlx.com/docs/products/dhtmlxScheduler/
или http://javascript.daypilot.org/demo/scheduler/
или http://demos.telerik.com/kendo-ui/web/scheduler/index.html