конвертировать метку времени MySQL в фактическую дату и время? - PullRequest
33 голосов
/ 05 апреля 2011

У меня есть даты, хранящиеся в таблице mysql, они настроены на сохранение как CURRENT TIMESTAMP в каждой строке и хранятся следующим образом:

2010-05-29 01:17:35

, но я пытаюсь как-то использовать PHPбыть в состоянии отделить все и создать дату, например:

29 мая 2010 1:17 AM

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

Ответы [ 3 ]

59 голосов
/ 05 апреля 2011
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

http://php.net/manual/en/function.date.php

23 голосов
/ 05 апреля 2011

У вас есть два решения:

  • Используйте strtotime() для разбора даты на отметку времени и date(), чтобы переформатировать его в строку
  • Или использовать DateTime класс


В PHP-коде это будет означать использование:

echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

Или:

$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');


strtotime + date - это решение, которое вы увидите при использованиисамый ;но это не лучшее решение: с ними вы будете работать с метками времени UNIX, что означает ограниченный диапазон дат (с 1970 по 2038 год, если используются 32-битные целые числа) .

С другой стороны, используя класс DateTime, диапазон дат, с которыми вы можете работать, не будет ограничен.

3 голосов
/ 05 апреля 2011

Если у вас есть поле DATETIME в вашей таблице и вам нужно только поле даты, то:

SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;

или:

SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;

, где timestamp - это вашеимя столбца.

...