How to return ISO date format in PHP for MongoDB?
date, isodate, mongodb, php, time
Solution
You could run the `__toString` function, or use the `sec` field
`__toString` will return a timestamp in usecs, which you can pass to `date()` after separating the seconds from milliseconds - read here: https://www.php.net/manual/en/mongodate.tostring.php
OR, I personally prefer to have mongodb return just the seconds, which can be plugged directly into `date()` - read here: http://php.net/manual/en/class.mongodate.php
Also, if you're generating a MongoDate() for right now, you don't need to specify time();
In order to return an isodate, you need to do this:
echo date(DATE_ISO8601, (new MongoDate())->sec);
...
$exampleDate = new MongoDate();
echo date(DATE_ISO8601, $exampleDate->sec);
EDIT: To save your ISO date, you need to do the following:
$mongoDateObject = new MongoDate(strtotime("2012-11-02T08:40:12.569Z"));
Problem
I want to store the current date generated from PHP into MongoDB collection as an ISO date formate. ``` ISODate("2012-11-02T08:40:12.569Z") ``` However I am not able to generate such Kind of date in php which will be stored in MongoDB as an ISODate format. This is what I ve done. ``` $d = new MongoDate(time()); echo $d; ``` and it is outputting something like, ``` 0.00000000 1353305590 ``` which is not the format I need. How to do this?