我想将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"));