flex - zend amf - как конвертировать в mongodb совместимую дату и обратно? - PullRequest
0 голосов
/ 27 июля 2011

В flex (flash builder 4) у меня есть свойство Date (), которое я передаю Zend AMF (php), и я хочу сохранить это (как и другие данные) в mongoDB.

Mongodb жалуется на дату, потому что она выглядит как объект Zend_Date, который выглядит как объект, содержащий несколько свойств, и Mongodb говорит, что он не может принимать пустые свойства.

Итак, я понимаю, что это должно быть преобразовано во что-то еще, прежде чем я смогу его сохранить?

Если да, то как мне это сделать?

В настоящий момент я использовал метод преобразования объекта Zend_Date в строку даты для его сохранения (в php):

$object->readyDT=date("m/d/Y H:i", strtotime($object->readyDT)); //convert to string

Это прекрасно работает, и у меня есть строка в mongodb этой даты.

Теперь, когда я загружаю дату из MongoDB, мне нужно преобразовать ее обратно в Zend_Date, чтобы она правильно преобразовывала обратно в объект Date () в flex (я должен убедиться, что он не пустой или выдает ошибки в PHP):

if (isset($object->readyDT) && $object->readyDT!=="") $object->readyDT = new Zend_Date($object->readyDT, 'MM/dd/yyyy hh:mm');

Это все работает, но, похоже, должен быть гораздо более простой способ взять Date () из flex и сохранить его в MongoDB через Zend AMF / PHP.

1 Ответ

1 голос
/ 27 июля 2011

Иногда я пытаюсь сохранить даты как время Unix, когда мне это удается. Они легко хранятся (просто число), легко инициализируются и являются универсальной концепцией почти для каждого языка (включая PHP). Единственное различие между временем Unix AS3 и временем другого Unix заключается в том, что AS3 немного точнее, миллисекунды, а не секунды.

В скорлупе ореха время unix измеряется в секундах с момента моего рождения. 1 января 1970 г. См .: http://en.wikipedia.org/wiki/Unix_time

чтение: http://php.net/manual/en/function.time.php соответствующий стекопоток: Получение метки времени Unix в миллисекундах в PHP5 и Actionscript3

...