在flex (flash builder 4)我有一个日期()属性,我传递到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获取日期(),并通过Zend AMF/PHP将其存储在MongoDB中。div ?
有时我会尝试将日期存储为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在PHP5和Actionscript3中获取unix时间戳