Формат даты PHP Zend

Я хочу ввести временную метку в формате ниже в базу данных.

yyyy-mm-dd hh:mm:ss 

Как я могу попасть в формат выше?

Когда я использую

 $date = new Zend_Date(); 

он возвращает месяц dd, yyyy hh: mm: ss PM

Я также использую календарь JavaScript для вставки выбранной даты, и он возвращается в формате dd-mm-yyyy

Теперь я хочу преобразовать эти оба формата в yyyy-mm-dd hh: mm: ss, поэтому их можно вставить в базу данных. Поскольку формат даты не соответствует формату поля базы данных, дата не вставлена ​​и заполняется только * 00-00-00 00:00:00 *

Спасибо за ответ

Related of "Формат даты PHP Zend"

Не уверен, что это вам поможет, но попробуйте использовать:

  // to show both date and time, $date->get('YYYY-MM-dd HH:mm:ss'); // or, to show date only $date->get('YYYY-MM-dd') 

Технически @stefgosselin дал правильный ответ для Zend_Date , но Zend_Date полностью Zend_Date , просто получив текущее время в общем формате. Zend_Date невероятно медленный и громоздкий для использования по сравнению с расширениями родной даты PHP. Если вам не нужен перевод или локализация в вашем Zend_Date (и, по-видимому, нет), держитесь подальше от него.

Используйте для этого функцию date на PHP , например

 echo date('Ymd H:i:s'); 

или процедурный API DateTime

 echo date_format(date_create(), 'Ymd H:i:s'); 

или API объекта DateTime

 $dateTime = new DateTime; echo $dateTime->format('Ymd H:i:s'); 

Не делайте общей ошибки при использовании каждого компонента Zend Frameworks только потому, что он предлагает его. Это абсолютно не нужно, и на самом деле, если вы можете использовать родное расширение PHP для достижения того же результата с меньшими или сопоставимыми усилиями, вам будет лучше с помощью собственного решения.

Кроме того, если вы собираетесь сохранить дату в своей базе данных, вы использовали какой-либо из столбцов, связанных с DateTime, в своей базе данных ? Предполагая, что вы используете MySql, вы можете использовать столбец Timestamp или столбец Date ISO8601.

простой способ использования Zend Date – сделать определенную функцию в своих бизнес-объектах, что позволяет параметрировать эту функцию в формате даты. Вы можете найти хороший пример по этому адресу http://www.pylejeune.fr/framework/utiliser-les-date-avec-zend_date/

Вот как я это сделал:

 abstract class App_Model_ModelAbstract extends Zend_Db_Table_Abstract { const DATE_FORMAT = 'yyyy-MM-dd'; public static function formatDate($date, $format = App_Model_ModelAbstract::DATE_FORMAT) { if (!$date instanceof Zend_Date && Zend_Date::isDate($date)) { $date = new Zend_Date($date); } if ($date instanceof Zend_Date) { return $date->get($format); } return $date; } } 

таким образом вам не нужно беспокоиться о том, действительно ли это экземпляр даты zend, вы можете передать строку или что-нибудь еще, что является датой.

это я сделал это:
Zend_Date::now->toString('dd-MM-yyyy HH:mm:ss')
вывод из этого формата – «24-03-2012 13:02:01»
и вы можете изменить формат даты

Я всегда использовал $date->__toString('YYYY-MM-dd HH-mm-ss'); метод в прошлом, но сегодня не работал. Я получал выход по умолчанию «1 ноября 2013 года 12:19:23 PM»

Поэтому сегодня я использовал $date->get('YYYY-MM-dd HH-mm-ss'); как уже упоминалось выше. Кажется, я решил свою проблему.

Более подробную информацию об этом вы можете найти здесь: http://framework.zend.com/manual/1.12/en/zend.date.constants.html