Intereting Posts

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

У меня есть даты, хранящиеся в таблице 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')); 

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

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

  • Используйте 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 – ваше имя столбца.