PHP Datetime не работает должным образом - PullRequest
0 голосов
/ 13 апреля 2011

Я извлекаю данные даты и времени из mysql, из которых извлекаются данные из одной строки.

2011-04-11 19:31:30 

Я хотел переформатировать дату и время в d-m-Y H:i:s, поскольку я использую date_format() приведенный ниже кодработает просто отлично.

$date = new DateTime($users['registerDate']);
echo $date->format('d-m-Y H:i:s');

Однако я не хочу идти объектно-ориентированным путем только для переформатирования, потому что я буду использовать код внутри цикла foreach, а это значит, что мне придется инициализировать класс DateTimeснова и снова.

Я попытался сделать это процедурным способом, используя следующий код.

$date = $users['registerDate'];
echo date_format($date, 'Y-m-d H:i:s');

приведенный выше код не работает для меня и возвращает следующую ошибку.

Предупреждение: date_format () ожидает, что параметр 1 будет DateTime, строка указана в /Applications/MAMP/htdocs/kokaris/administrator/resources/library/models/users/users.php в строке 21

Что может быть неправильным?

Данное решение прекрасно работает для процедурного способа.

echo date('m-d-Y',strtotime($users['registerDate']));

Однако я хотел бы знать, какой из них будет лучшимМожно решить вышеуказанный процедурный путь или путь ООП.

 $date = new DateTime($users['registerDate']);
 echo $date->format('d-m-Y H:i:s');

Учитывая, что я буду использовать код внутри цикла foreach, он может повторяться более ста раз.

Ответы [ 3 ]

7 голосов
/ 13 апреля 2011

Вам не нужно "date_format ()":

echo date('d-m-Y H:i:s', strtotime('2011-04-11 19:31:30'));

//results: 11-04-2011 19:31:30
4 голосов
/ 13 апреля 2011

Вы пытаетесь использовать функцию / объект, являющийся частью класса DateTime, не создавая ссылку на класс DateTime.

Для процедурного форматирования взгляните на date ()

2 голосов
/ 13 апреля 2011

То, что вы ищете, это:

date('d-m-Y H:i:s', strtotime('2011-04-11 19:31:30'));

Посмотрите руководство по php.Тем не менее, использование предложенных вами методов довольно хорошо, поскольку объект DateTime сопоставляется с некоторыми функциями, написанными на C.

Также PHP Datetime работает нормально , поскольку date_format - просто псевдонимof Date :: format, который требует точно того, что вы не хотите передавать (объект DateTime).

Честно говоря, мы говорим о PHP ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...