преобразовать метку времени mysql в фактическую дату и время?


У меня есть даты, хранящиеся в таблице mysql, они настроены для хранения в качестве ТЕКУЩЕЙ МЕТКИ ВРЕМЕНИ в каждой строке и хранятся следующим образом:

2010-05-29 01:17:35

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

29 мая 2010 1:17 утра

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

Author: mcbeav, 2011-04-05

3 answers

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

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

 52
Author: deceze, 2011-04-05 04:39:14

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

  • Использовать 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 диапазон дат, с которыми вы можете работать, не будет ограничен.

 22
Author: Pascal MARTIN, 2011-04-05 04:40:21

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

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

Или:

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

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

 1
Author: sreekanth, 2016-12-12 14:11:58