Wes*_*Wes 6 php datetime mongodb
这让我感到难过......我正在使用以下的确切示例:
http://php.net/manual/en/mongodate.todatetime.php
但我得到了:
PHP致命错误:调用未定义的方法MongoDate :: toDateTime()
<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
var_dump($d);
var_dump( $d->toDateTime() );
?>
Run Code Online (Sandbox Code Playgroud)
我得到的确切输出是:
object(MongoDate)#1 (2) {
["sec"]=>
int(1416330085)
["usec"]=>
int(0)
}
PHP Fatal error: Call to undefined method MongoDate::toDateTime() in /xxx/testmongodate.php on line 5
Run Code Online (Sandbox Code Playgroud)
PHP版本:
$ php -v
PHP 5.5.9-1ubuntu4.9 (cli) (built: Apr 17 2015 11:44:57)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
Run Code Online (Sandbox Code Playgroud)
PHP配置:
$ php -i | grep mongo
/etc/php5/cli/conf.d/20-mongo.ini,
mongo
mongo.allow_empty_keys => 0 => 0
mongo.chunk_size => 262144 => 262144
mongo.cmd => $ => $
mongo.default_host => localhost => localhost
mongo.default_port => 27017 => 27017
mongo.is_master_interval => 15 => 15
mongo.long_as_object => 0 => 0
mongo.native_long => 0 => 0
mongo.ping_interval => 5 => 5
Run Code Online (Sandbox Code Playgroud)
我已成功使用此安装插入和读取实际的mongo数据库,但现在我正在尝试使用MongoDate对象,因为它们是从mongo中读取的,尝试将它们格式化以插入到另一个数据库中...这就是为什么我要使用这种方法...但它似乎没有被发现......?
$ uname -a
Linux server1 3.13.0-52-generic #86-Ubuntu SMP Mon May 4 04:32:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
小智 0
对于后来提出这个问题的人(就像我一样),可能的问题是 PHP 使用了不同的 Mongo 驱动程序。目前有 2 个,以下代码适用于旧版驱动程序。旧驱动程序的解决方案是使用 PHP 日期函数从 Mongo Date 获取日期:
<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
$newdate = date('Y-m-d H:m:s',$d->sec);
var_dump( $newdate );
?>
Run Code Online (Sandbox Code Playgroud)