从PHP打印MongoDB日期

从PHP打印MongoDB日期,php,mongodb,date,Php,Mongodb,Date,在PHP中,如何从MongoDBdate中获取常规时间戳格式 假设我有: $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时间戳,请使用

PHP
中,如何从
MongoDB
date中获取常规时间戳格式

假设我有:

$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('Y-m-d H:i:s', $my_date->sec);

你错过了微秒

显示(mongo->php)

你好


Mario T.

只是一个快速更新,可以说MongoDate从pecl扩展的1.6版开始就有了toDateTime方法。 你现在可以做了

$mongoDate->toDateTime()->format(...)

首先,使用给定函数从毫秒创建日期:

public function showdatefn($mili)
{   
    $seconds = (string)$mili / 1000;
    return date("d-m-Y", $seconds); 
}   
$date =$this->showdatefn(<put mongo date here>);
公共函数showdatefn($mili)
{   
$seconds=(字符串)$mili/1000;
返回日期(“d-m-Y”,美元秒);
}   
$date=$this->showdatefn();
这将为您提供正确的日期。

不推荐使用

$mongoDate = new \MongoDB\BSON\UTCDateTime(strtotime('2020-10-01 18:30:00'));

不确定是谁在10Gen做出了这样的决定,但这令人困惑。不必调用
sec
属性。哦,这个人实际上在StackOverflow上有一个手柄:
public function showdatefn($mili)
{   
    $seconds = (string)$mili / 1000;
    return date("d-m-Y", $seconds); 
}   
$date =$this->showdatefn(<put mongo date here>);
$mongoDate = new \MongoDB\BSON\UTCDateTime(strtotime('2020-10-01 18:30:00'));