преобразовать метку времени mysql в фактическую дату и время?
У меня есть даты, хранящиеся в таблице mysql, они настроены для хранения в качестве ТЕКУЩЕЙ МЕТКИ ВРЕМЕНИ в каждой строке и хранятся следующим образом:
2010-05-29 01:17:35
Но то, что я пытаюсь сделать, это каким-то образом использовать PHP, чтобы иметь возможность разделить все и создать дату, более похожую на:
29 мая 2010 1:17 утра
Может ли кто-нибудь, по крайней мере, направить меня на правильный путь, по которому я должен идти. любая помощь будет очень признательна!
3 answers
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
У вас есть два решения:
- Использовать
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
диапазон дат, с которыми вы можете работать, не будет ограничен.
Если в вашей таблице есть поле DATETIME
и вам нужно только поле даты, то:
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
Или:
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
Где timestamp
- имя вашего столбца.