我想将PHP生成的当前日期作为ISO日期格式存储到MongoDB集合中。

ISODate("2012-11-02T08:40:12.569Z")

但是,我无法在php中生成此类日期,它将以 ISODate 格式存储在MongoDB中。

这就是我所做的。
 $d = new MongoDate(time());
 echo $d;

它输出类似
0.00000000 1353305590

这不是我需要的格式。这该怎么做?

最佳答案

您可以运行__toString函数,或使用sec字段
__toString将返回usecs中的时间戳,您可以将秒与毫秒分隔后传递给date()-在此处阅读:http://us1.php.net/manual/en/mongodate.tostring.php

或者,我个人更喜欢让mongodb仅返回秒,可以将其直接插入date()-阅读此处:http://php.net/manual/en/class.mongodate.php

另外,如果您现在正在生成MongoDate(),则无需指定time();

为了返回一个isodate,您需要这样做:

echo date(DATE_ISO8601, (new MongoDate())->sec);

...
$exampleDate = new MongoDate();
echo date(DATE_ISO8601, $exampleDate->sec);

编辑:要保存您的ISO日期,您需要执行以下操作:
$mongoDateObject = new MongoDate(strtotime("2012-11-02T08:40:12.569Z"));

10-07 14:54