cakephp как создать и сохранить форму с одной датой и интервалом времени

#cakephp-3.0

Вопрос:

Cakephp 3.2

У меня есть поле даты и времени [start_time] и[end_time]в таблице MYSQL.

и у меня есть форма как образ формы

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

как установить [время начала] и[время окончания] с одинаковой датой и как сохранить и отобразить сохраненные дату и интервал времени для просмотра

Я новичок в этом мире PHP и буду признателен вам за помощь

мой HTML-файл ctp выглядит следующим образом

 <tr>
    <th>date</th>
    <th class="require"><span class="red">※</span></th>
    <td colspan="3">
        <input type="text" class="calendar" value="">amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;
        <select>
            <!-- hour -->
            <option value="1">0</option>
        </select>:
        <select>
            <!-- minutes -->
            <option value="0">00</option>
        </select> amp;nbsp;amp;nbsp;~amp;nbsp;amp;nbsp;
        <select>
            <!-- hour -->
            <option value="1">0</option>
        </select>:
        <select>
            <!-- minutes -->
            <option value="">00</option>
        </select>
    </td>
</tr>
 

Ответ №1:

*Примечание: это небольшая демонстрационная версия, пожалуйста, обратитесь к порталу cakephp, чтобы узнать подробнее.

возьмите таблицу внутри формы

теперь у вас есть 3 поля —

дата — текстовое поле : назовите его как input_date

2 поля времени (раскрывающиеся списки): час : назовите его start_tm[0] ( $this->Form->select('start_tm.0',[values here],[options]); )

минута : назовите ее start_tm[1]

аналогично — end_tm[0],end_tm[1]

у контроллера

// допустим, ваша модель называется «Временные интервалы».

$data = $this->request->getData(); // получить данные запроса ( отправить )

// выполняйте проверки на сервере ………….. ( я не добавил )

// отформатируйте входные данные в соответствии с требованиями вашей таблицы БД

 $start_time_text = $data['input_date'] . ' ' . implode(':',$data['start_tm']); 
$end_time_text = $data['input_date'] . ' ' . implode(':',$data['end_tm']);
 

// ( текст вашей даты теперь будет выглядеть как гггг/мм/дд ч:мм )

// форматирование в виде текста даты и времени

  $data['start_time'] = date('Y-m-d H:i:s', strtotime($start_time_text)); 
    $data['end_time'] = date('Y-m-d H:i:s', strtotime($end_time_text));

$timeSlot = $this->TimeSlots->newEntity($data); // you can set validation at the model - see cakephp ORM

if($this->TimeSlots->save($timeSlot)){
    $this->Flash->success(__('Saved successfully'));
} else {
    $this->Flash->success(__('Some error occurred'));
}