Конвертировать / сохранять отправленное пользователем «Время» в базе данных

#php #mysql

#php #mysql

Вопрос:

У меня есть форма, в которой пользователи выбирают время из формы

     <select name='hour'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
    <option value='10'>10</option>
    <option value='11'>11</option>
    <option value='12'>12</option>
</select>
:
<select name='min'>
    <option value='00'>00</option>
    <option value='15'>15</option>
    <option value='30'>30</option>
    <option value='45'>45</option>

</select>
<select name='ampm'>
    <option value='AM'>AM</option>
    <option value='PM'>PM</option>
</select>
  

Я размещаю эту информацию на странице обработки, где мне нужно сохранить время, отправленное пользователем в базу данных в формате DateTime. Данные необходимо будет сохранить в базе данных в формате datetime (2011-06-11 23:11:07) с датой, равной сегодняшнему дню.

Я думаю, что функция data каким-то образом сможет преобразовать это, но, похоже, я не могу в этом разобраться.

Ответ №1:

Достаточно просто. Предполагая, что пользователь вводит 1: 09 вечера, затем:

 $hour = intval($_REQUEST['hour']); // 1
$min = intval($_REQUEST['minute']); // 9
if (($_REQUEST['ampm'] == 'PM') amp;amp; ($hour <> 12)) { 
   $hour  = 12; // adjust for 24 clock, so $hour becomes 13
}

$timestring = sprintf('d:d:00', $hour, $min); // 13:09:00
$datestring = date('Y-m-d'); // 2011-06-12

$timestamp = $datestring . ' ' . $timestring; // 2011-06-12 13:09:00
  

Есть другие способы сделать это, но это, вероятно, немного проще для понимания.

Ответ №2:

strtotime() преобразует вводимую строку в временную метку. Затем вы можете использовать эту временную метку и функцию date() для форматирования даты любым удобным вам способом.

Вы должны передать ему строку в формате, подобном «ГГГГ-ММ-ДД ЧЧ: ММ: СС», и он должен без проблем проанализировать ее для вас.