Это одна из вечных проблем дизайна (веб) пользовательского интерфейса, как вводить время, не сводя пользователей с ума. То, что подходит для вашего конкретного случая, зависит только от вас, потому что это зависит от того, какой именно формат / обстоятельства вам нужны, а также от вашей целевой аудитории.
В качестве общих указаний я бы сказал:
- Не делайте текстовое поле произвольной формы, которое требует определенного формата, например «Введите время (ЧЧ: ММ: СС)», потому что это слишком легко испортить и будет отказывать пользователям в вводе или путать время, если вы не выполните проверку.
- Старайтесь избегать выпадений [0-23] [0-59] [0-59], так как они могут быть довольно болезненными (щелчок, прокрутка, щелчок, щелчок, прокрутка, щелчок, щелчок, прокрутка, щелчок).
Если простота использования является высоким приоритетом, как это было бы в случае общедоступных веб-сайтов, возможно, хорошая идея для выбора времени с использованием Javascript. Постарайтесь не использовать что-то слишком необычное, чего никто не получает (например, перетаскивая стрелки на часах).
Лучше всего подойдет текстовое поле произвольной формы. Пользователь может просто ввести «3 часа дня», «16:34» или «полночь». Возможно, вам придется предоставить примеры, чтобы начать работу пользователей, иначе они могут чувствовать себя потерянными. Вы можете выполнить это через strtotime
на своем конце, но вам, возможно, придется заполнить пробелы и сделать много проверок.
Три коротких текстовых поля могут быть хорошей идеей, если ваша аудитория очень сосредоточена на клавиатуре, и можно ожидать, что они будут быстро пролистывать их.
Что касается форматирования его для SQL, однако вы получаете ввод времени от пользователя, вам следует собрать его в метку времени UNIX и отформатировать эту метку времени для SQL:
date('Y-m-d H:i:s', $timestamp);