Отказ от ответственности: Я прекрасно понимаю, что лучший способ представить дату/время - это временные метки Unix или PHP DateTime
и тип данных Oracle DATE
.
С этой точки зрения мне интересно, какие наиболее подходящие типы данных (как в PHP, так и в Oracle) для хранения только времени. Мне не интересно хранить компонент date; только время.
Например, скажем, у меня был объект employee
, для которого я хотел сохранить его/ее типичный график работы. Этот сотрудник может работать с 8:00 до 17:00. В эти моменты нет компонентов даты, и что их следует использовать для их хранения и представления?
Параметры, которые я рассмотрел:
- Как строки со стандартным форматом (вероятно, 24-часовая ЧЧ: ММ: СС + З).
- Как числа в диапазоне 0 <= n < 24, с дробными частями, представляющими минуты/секунды (не удается сохранить информацию о часовом поясе?).
- Как PHP
DateTime
и OracleDATE
с нормализованным/неиспользуемым компонентом даты, например0001-01-01
. - То же, что и выше, только с использованием временных меток Unix (PHP
integer
и OracleTIMESTAMP
).
В настоящее время я использую # 3 выше, но это меня раздражает, что кажется, что я неправильно использую эти типы данных. Однако, насколько я могу судить, он обеспечивает наилучшее удобство использования. Сравнение и сортировка всей работы, как ожидалось, в PHP и Unix, данные о часовом поясе могут поддерживаться, и на самом деле нет необходимости в каких-либо специальных манипуляциях для отображения данных.
Я пропускаю что-либо или есть более подходящий способ?