Как в PHP
я получаю формат временной метки из даты MongoDB
?
Предположим, что у меня есть:
$my_date; print_r($my_date);
Выход print_r
:
MongoDate Object ( [sec] => 1346300336 [usec] => 593000 )
Но делать:
echo $my_date;
Выходы:
0.59300000 1346300336
Даже попробовал:
echo (string)$my_date
То же самое.
$my_date->sec
– это временная метка unix, используйте функцию date()
чтобы показать ее в требуемом формате.
echo date('Ymd H:i:s', $my_date->sec);
вам не хватает микросекунды.
Чтобы показать (mongo -> php)
$fecha = date(preg_replace('`(?<!\\\\)u`', $my_date->usec, 'YMd H:i:s.u'), $my_date->sec); //MongoDate ISODate("2013-05-28T15:27:24.735Z") //Php Date 2013-May-28 10:27:24.735000
Чтобы отправить mongo (php -> mongo)
$fecha_mongo = new MongoDate(strtotime($fecha)); //Fail function, the short way but, 70000 isn't equal to 700000. //$fecha_mongo->usec = (int)$fecha_micro->format("u"); preg_match("/\.(.*)/", $fecha, $uSec); $fecha_mongo->usec = (int)(count($uSec)==2?$uSec[1]:0); //Php Date 2013-May-28 10:27:24.735000 //MongoDate ISODate("2013-05-28T15:27:24.735Z")
Добрый день!
Марио Т.
Просто быстрое обновление, чтобы сказать, что у MongoDate есть метод toDateTime с версии 1.6 расширения pecl. Теперь вы можете сделать
$mongoDate->toDateTime()->format(...)