0

在 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 以便它正确地转换回 flex 中的 Date() 对象(我必须检查它是否为空,否则会在 php 中引发错误):

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

这一切都有效,但似乎应该有一种更简单的方法从 flex 获取 Date() 并通过 Zend AMF/PHP 将其存储在 MongoDB 中。?

4

1 回答 1

1

有时我会尝试将日期存储为 unix 时间,以便我可以摆脱它。它们易于存储(只是一个数字),易于初始化,并且是几乎所有语言(包括 PHP)的通用概念。AS3 unix 时间和其他 unix 时间的唯一区别是 AS3 更精确一点,毫秒而不是秒。

简而言之,unix 时间是从我出生前的秒数开始计算的。1970 年 1 月 1 日。见:http ://en.wikipedia.org/wiki/Unix_time

阅读:http://php.net/manual/en/function.time.php 相关的stackoverflow:在PHP5和Actionscript3中以毫秒为单位获取unix时间戳

于 2011-07-26T20:54:05.817 回答