PHP/Oracle :Представление времени

Отказ от ответственности:Я полностью осознаю, что лучший способ представить дату/время — это либо метки времени Unix, либо класс PHP DateTimeи тип данных Oracle DATE.

Учитывая это, мне интересно, какие наиболее подходящие типы данных (в PHP, а также Oracle )для хранения только временных данных. Я не заинтересован в хранении компонента даты ; только время.

Например, предположим, что у меня есть объект employee, для которого я хотел сохранить его/ее типичный график работы. Этот сотрудник может работать с 8 :00 утра -до 5 :00 вечера. Для этих времен нет компонентов даты , поэтому что следует использовать для их хранения и представления?

Варианты, которые я рассматривал:

  1. В виде строк в стандартном формате (вероятно 24 -час ЧЧ :ММ :СС+Z ).
  2. Поскольку числа в диапазоне 0 <= n <24, с дробными частями, представляющими минуты/секунды (, не могут хранить информацию о часовом поясе? ).
  3. Как PHP DateTimeи Oracle DATEс нормализованным/неиспользуемым компонентом даты, например 0001-01-01.
  4. То же, что и выше, только с использованием временных меток Unix (PHP integerи OracleTIMESTAMP).

В настоящее время я использую #3 выше, но меня немного раздражает, что я неправильно использую эти типы данных. Тем не менее, насколько я могу судить, он обеспечивает наилучшее удобство использования. Сравнения и сортировка работают, как и ожидалось, как в PHP, так и в Unix, данные часового пояса могут поддерживаться, и для отображения данных не требуется никаких специальных манипуляций.

Я что-то упускаю из виду, или есть более подходящий способ?

10
задан FtDRbwLXw6 11 July 2012 в 13:13
поделиться