Ответ 1
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
У меня есть даты, хранящиеся в таблице mysql, они сохраняются как CURRENT TIMESTAMP в каждой строке и сохраняются следующим образом:
2010-05-29 01:17:35
но то, что я пытаюсь сделать, - это как-то использовать PHP, чтобы иметь возможность отделить все и создать дату больше:
29 мая 2010 1:17 утра
может кто-нибудь хотя бы направить меня на правильный путь, который я должен взять. любая помощь очень ценится!
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
- ваше имя столбца.