2014-12-07 9 views
-2

Я использую DateTime изменить в форматах моей $ строки датыформат DateTime возвращает строку

$date = (new DateTime($date))->format('D, M d, Y'); 

Однако, называя gettype(Sdate) впоследствии дает возвращаемое значение в виде строки. PHP manual говорит, что он должен

Возврат (-а) нового экземпляра DateTime или FALSE при сбое.

Я получаю экземпляр, но есть ли предполагаемое поведение для возвращаемого формата в строке? Является ли использование strtotime после этого всегда обязательным, несмотря на использование функции DateTime, или я делаю что-то совершенно неправильно?

+2

Нет, руководство говорит, что [формат ()] (http://www.php.net/manual/en/datetime.format.php) метод возвращает строку .... 'public string DateTime :: format (string $ format)' –

+1

Но почему вы считаете используя 'strtotime' вообще, когда вы используете объекты DateTime .... это похоже на то, чтобы вывести двигатель из вашего Ferrari и заменив его движком газонокосилки –

+1

Если вы хотите создать экземпляр DateTime, используйте '$ dateObject = new DateTime ($ date);' и вы можете делать то, что хотите, с помощью '$ dateObject' после этого –

ответ

3

Вы просматриваете страницу документации метода DateTime::createFromFormat(), которая действительно принимает строку, задающую определенный формат, и возвращает объект DateTime.

DateTime::format(), с другой стороны, принимает строку формата и возвращает дату в виде строки.

Я считаю, что это то, что вы на самом деле хотите:

$myDate = '2014-12-07 10:00:00'; 
$dateTime = new DateTime($myDate); 

format() позволит вам восстановить ту же строку из экземпляра DateTime:

$originalDate = $dateTime->format('Y-m-d H:i:s'); 
Смежные вопросы