mongodb — Php Mongodate конвертирует дату в 1970

Привет, ребята, я храню дату в mongodb. Проблема, с которой я сталкиваюсь, состоит в том, что строка времени и даты, которую я получаю. Я пытаюсь преобразовать его в Mongodate, но он преобразует его в 0.00000000 2016, Вот код

 $params['start'] = new MongoDate($params['start']);
$params['end'] = new MongoDate($params['end']);

Строка выводит дату и время в этой форме 2016-04-07 19:49:50 но после преобразования становится так 0.00000000 2016, Пожалуйста, скажите мне, что я делаю неправильно?

1

Решение

В соответствии с документами, MongoDate ожидает значение метки времени, например 1460058590, а не строка, как 2016-04-07 19:49:50,

$params['start'] = new MongoDate(strtotime($params['start']));
4

Другие решения

MongoDate конструктор ожидает время в секундах эпохи Unix, а не строку времени.

public MongoDate::__construct ([ int $sec = time() [, int $usec = 0 ]] )

Вам нужно будет преобразовать строку времени, используя strtotime или же DateTime. Пример кода из документации конструктора даже включает в себя пример:

$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo "$d\n";
3

По вопросам рекламы [email protected]