getCreatedAt() не изменяет формат даты и времени


Мне нужен формат даты и времени, как этот

$aWebOrder->OrderCreationDate  = '2012-11-08 12:00:00';

Вот что я делаю:

$aWebOrder->OrderCreationDate    = $order->getCreatedAt();

Я пытался исправить это, но безуспешно, я просто получаю странное значение, которое выглядит так, будто штампует только секунды. Кто-нибудь сталкивался с такой же проблемой? Спасибо

Author: DanielDake, 2013-10-21

2 answers

На самом деле типом столбца created_at таблицы sales_flat_order является datetime, и $order->getcreatedat() должен возвращать форматированное datetime. Вы также можете попробовать это:

$order->getCreatedAtStoreDate()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
 8
Author: mageUz, 2013-10-21 16:51:10

Когда я делаю следующее:

$order = Mage::getModel('sales/order')->getCollection()->getFirstItem();    
var_dump($order->getCreatedAt());

Он возвращает:

string(19) "2013-03-28 12:31:17"

Возможно, тогда у вас возникнут следующие проблемы:

  • Mage_Sales_Model_Order является подклассом и предоставляет конкретный метод getCreatedAt (в отличие от метода, являющегося волшебным)
  • Ваши данные, хранящиеся в столбце created_at для рассматриваемого заказа, на самом деле имеют временную метку Unix или какие-либо другие данные? Это может указывать на незаконное изменение схемы.

Чтобы проверить, является ли модель подклассом, повторите get_class($order) - удалить перезапись, если модель была переписана для диагностики.

 6
Author: philwinkle, 2013-10-21 16:41:04