2015-05-26 13 views
6

... Ben gelen kesin bir örnek kullanıyorum:MongoDate toDateTime() işlevi tanımlı değil mi? Bu beni stumping olduğunu

http://php.net/manual/en/mongodate.todatetime.php

ama alıyorum:

PHP Fatal error: Call to undefined method MongoDate::toDateTime()

<?php 
$d = new MongoDate(strtotime("2014-11-18 11:01:25")); 
var_dump($d); 
var_dump($d->toDateTime()); 
?> 

alıyorum tam çıktısı:

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 

PHP version:

$ 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 

PHP yapılandırma:

$ 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 

başarıyla içine yerleştirin ve gerçek bir Mongo veritabanından okuma bu yüklemeyi kullanıyoruz ama şimdi onlar dışarı okunduğu gibi MongoDate nesnelerle çalışmaya çalışıyorum mongo, onları başka bir veritabanına eklemek için biçimlendirmeye çalışıyorum ... bu yüzden bu yöntemi kullanmak istiyorum ... ama görünmüyor gibi görünüyor ... ?? Geç bu soruya gelen herkes için

$ 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 
+1

nasıl PECL versiyonu? 'PECL mongo> = 1.6.0' – Scuzzy

+0

tam olarak nasıl kontrol edeceğimi tam olarak bilmiyorum, ancak bunu yaptı: $ pecl version PEAR Sürüm: 1.9.4 PHP Versiyon: 5.5.9-1ubuntu4.9 Zend Motor Versiyonu: 2.5.0 Çalışıyor: Linux server1 3.13.0-52-jenerik # 86-Ubuntu SMP Mon May 04 04:32:59 UTC 2015 x86_64 – Wes

+2

'pecl list', yüklü paketleri ve bunların sürümlerini listeleme komutu olmalıdır. 1.6.0'dan daha eski bir sürüm döndürürse, benim varsayımım kurulu paketin sadece bu işlevselliğe sahip olmamasıdır. – Scuzzy

cevap

0

(benim yaptığım gibi), muhtemelen sorunu PHP farklı Mongo sürücüsü kullanıyor olmasıdır. Şu anda 2 ve aşağıdaki kod eski sürücü içindir. eski şoförü ile çözüm PHP tarih fonksiyonu kullanılarak Mongo tarihi tarihini elde etmektir:

<?php 
$d = new MongoDate(strtotime("2014-11-18 11:01:25")); 
$newdate = date('Y-m-d H:m:s',$d->sec); 
var_dump($newdate); 
?>