Дата mongodb не соответствует заданному значению

Вставляя данные в коллекцию mongodb, я ввожу дату как '20-06-2015', а затем преобразую ее в формат mongo, используя:

new MongoDate(strtotime(ClearContent(date("Y-m-d",strtotime($start_date)))));

Но теперь, когда я проверяю в базе данных, это показывает это:

ISODate("2015-04-19T18:30:00.000Z")

Почему он принимает дату вчерашнего дня.

3 ответа

Решение

Даты в mongodb хранятся в UTC, и, вероятно, вы используете другой часовой пояс в PHP

Попробуйте установить это в начале вашего PHP-скрипта, чтобы использовать часовой пояс UTC:

date_default_timezone_set('UTC');

Попробуй это...

$dat = new DateTime(date("Y-m-d",strtotime($start_date)), new DateTimeZone('UTC'));
$get = $dat->getTimestamp();
$date= new MongoDate($get);

Это будет работать

$d = new \MongoDate();
$mongodate = date('Y-m-d H:i:s', $d->sec);
date_default_timezone_set("Asia/Kolkata");
$date = date('Y-m-d H:i:s');
$time = strtotime($date) - strtotime($mongodate);
$mongodate_time = new \MongoDate($d->sec + $time, $d->usec);
Другие вопросы по тегам