2013-05-05 2 views
1

Я работаю в серверной среде с PHP 5.3.Что лучше: date() или DateTime :: format()?

Чтобы создать строку MySQL DATETIME, представляющую текущее время, я только что использовал date("Y-m-d H:i:s") в своем коде. Что-то вроде new DateTime("now")->format("Y-m-d H:i:s") просто не может быть проанализировано в этой версии. Однако, я полагаю, могу ли я положиться на функцию date(), чтобы сделать это.

И в некоторых исходных файлах я использую DateTime::createFromFormat('Y-m-d H:i:s', $mysqlDate)->format('d/m/Y H:i'), чтобы получить более дружескую дату для бразильских посетителей.

Вопрос: этот код спагетти? Что я могу сделать для более сжатого кода?

+2

используйте все, что вам легче писать и поддерживать –

+0

Вам нужно следить с 'd/м/Y'. Если вы работаете с ним (например, strtotime), PHP будет интерпретировать его как 'm/d/Y' (American), и поэтому он может вызвать ошибки – kero

+0

Объекты DateTime - обрабатывать временные интервалы и переход на летнее время, обрабатывать гораздо более широкий диапазон дат, интеграции с DateIntervals и DatePeriods - привыкнуть к их использованию, и они упрощают многое. –

ответ

0

Datetime является немного более быстрым SEE HERE и иметь поддержку дневного часового пояса, однако также дата() может быть хорошо для быстрого кода, потому что лучше использовать DATETIME с ООП логики

$st = microtime(); 
echo date('m/d/Y H:i').' '.(microtime()-$st).'<br>'; 
$st = microtime(); 
$d = new Datetime(); 
echo $d->format('d/m/Y H:i').' '.(microtime()-$st); 

Вы можете также использовать DateTime в процедурном стиле

echo date_format(date_create($date),$format); 
+3

Привет, Сэм, чтобы ответить на ваш вопрос, подумайте о том, чтобы привести часть контекста из ссылки в тело вашего ответа. Если бы ссылка была сломана, ваш ответ по-прежнему был бы полезен для будущих посетителей с той же проблемой. Удачи! – jmort253

+0

Моя проблема в том, что переменная '$ d'. Должен ли я всегда создавать временную переменную для вызова метода 'format()'? –

+1

@tassoevan вы можете использовать процедурный стиль, например date_format (date_create ($ date), $ format) – Sam