Как конвертировать формат времени доступа Microsoft с помощью PHP - PullRequest
0 голосов
/ 08 февраля 2012

Может кто-нибудь, пожалуйста, помогите мне со следующим.

Я использую php и sql для запроса базы данных Microsoft Access. У меня есть поле даты / времени с именем «StartTime», для которого установлен формат «Общая дата».

При проверке поля из графического интерфейса пользователя microft дата отображается как «08:45:00».

Моя проблема в том, что когда я получаю эти данные с помощью php и sql, а затем отображаю их, а затем записываю их в браузер, они выглядят следующим образом: «1899-12-30 09:00:00» (давайте назовем это 'длинный формат даты' для того, что я собираюсь сказать ).

Я пытался возиться с функцией php date, используя «длинный формат даты» в качестве второго аргумента, но я не могу отобразить его в браузере в формате «08:45:00».

Пожалуйста, кто-нибудь может сказать мне, что мне нужно сделать.

Спасибо

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Вы могли бы попросить движок Access 'db предоставить вам только часть времени этих значений даты / времени в виде отформатированных строк:

SELECT Format(StartTime, "hh:nn:ss") AS time_only
FROM YourTable;

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

1 голос
/ 08 февраля 2012

Проблема в том, что MS Access хранит дату как двойное с дробями.Поэтому вам нужно проанализировать его соответствующим образом.

Целая часть числа - это количество дней с 30 декабря 1899 года. Дробная часть - это часть дня.Поэтому вам нужно умножить дробь на 24, чтобы получить часы, умножить полученную дробь на 60, чтобы получить минуты, и умножить полученную дробь на 60, чтобы получить секунды.

В качестве альтернативы, вы можете умножить дробь на 86400 (количество секунд в 24 часах), а затем используйте функцию PHP для преобразования секунд во время дня.

Ознакомьтесь с этой статьей: http://support.microsoft.com/kb/210276

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