Я хочу вставить дату в коллекцию. Я использую класс MongoDate
для создания объекта даты:
$today = new MongoDate(strtotime(date('Ymd 00:00:00')));
Проблема в том, что, как только в моей коллекции, дата на 2 часа раньше.
Например, $today
здесь должен быть 2013-05-28 00:00:00
но один раз в базе данных это 2013-05-27 22:00:00
.
Я не могу решить эту проблему, добавив 2 часа вручную в метку времени, потому что я использую дату в запросах.
Местное время сервера, на котором работает Mongo, настроено на правильное время в моей стране.
$dt = new DateTime(date('Ym-d'), new DateTimeZone('UTC')); $ts = $dt->getTimestamp(); $today = new MongoDate($ts);
Это работает.
Это работает в новой версии php mongodb:
new MongoDB\BSON\UTCDateTime((new DateTime($today))->getTimestamp()*1000)
Удалите старый документ и вставьте
$bill = array( "_id" => 1, "name" => "A", "lastModified" => new MongoDate() ); $collection->insert($bill);