Как я могу получить и отобразить метку времени из базы данных MySQL, используя PHP? - PullRequest
0 голосов
/ 04 марта 2011

В настоящее время я использую эту строку кода

echo date("F j Y g:i:s", $row[date]);

Но это просто дает мне January 1 1970 2:33:31

Я также хочу, чтобы это выглядело нормально, потому что, если я вообще не выполняю date("F j Y g:i:s",, все, что я получаю, это 2011-03-02 23:00:30, которая является правильной датой, но отображается очень ненормально

Ответы [ 2 ]

5 голосов
/ 04 марта 2011

Введите в UNIX_TIMESTAMP внутри запроса:

SELECT UNIX_TIMESTAMP(YourDateField) FROM YourTable

Поскольку я вижу ответы на другой ответ, хотя это игнорируется, позвольте мне уточнить:

Существует два распространенных типа даты.Оба на самом деле являются числами, которые представляют продолжительность с данной даты.

  1. Один - это количество дней (плавание) с 1900 года. Один - один день.Дробь - это дробь дня.
  2. Другое - это количество секунд с 1970 года. Это может быть целое число (целые секунды) или число с плавающей запятой (включая дробные секунды).

Если вы получили первое свидание, но относитесь к нему как ко второму формату, вы рассчитываете дни за секунды.Вместо 111 лет с 1900 года вы считаете 111 секунд с 1970 года. Это объясняет, почему вы получаете эту дату.

Поэтому используйте функцию UNIX_TIMESTAMP, которая преобразует первую запись с плавающей точкой во временную метку в секундах.Это необходимо, потому что это также тип, который использует PHP.

3 голосов
/ 04 марта 2011

Возможно, вам нужно использовать strtotime, функции date ожидают, что второй параметр будет меткой времени Unix

date("F j Y g:i:s", strtotime($row[date]));

Если вы хотите другое форматирование, вы можете взглянуть на эту страницу: Форматирование даты

Возможно, вы захотите что-то вроде этого:

date("Y-m-d H:i:s", strtotime($row[date]));
...