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