2015-10-06 45 views
0

不知道发生了什么,但是mongodate始终以0秒初始化。任何想法会导致什么?日期是在服务器上正确的..MongoDate行为异常

$d = new MongoDate(); echo sprintf("%s -- %s \n",$d,$d->toDateTime()->format('Y-m-d H:i'));

0.52000000 1037164 - 1970年1月13日00:06

$d = new MongoDate(strtotime("2010-01-15 00:00:00")); echo sprintf("%s -- %s \n",$d,$d->toDateTime()->format('Y-m-d H:i'));

0.52000000 10371640.97600000 793214 - 1970年-01-10 04:20

+0

更新,这似乎是toDateTime方法,实际上是行为不端..打印mongodate出来给我正确的信号出现时间.. –

回答

0

好的,好像mongodate-> todatestring不起作用。

所以......无论如何。 ¯\ _(ツ)_ /¯

从MongoDate->秒构造您datetime对象,因为#PHP

$d = new MongoDate(); 
$slugDate = new DateTime(); 
$slugDate->setTimestamp($d->sec); 

echo sprintf("mongodate= %s \n",$d->toDateTime()->format('Y-m-d H:i')); 
echo sprintf("datetime from mongo = %s \n",$slugDate->format('Y-m-d H:i')); 

$ mongodate = 1970年1月13日1点11

从蒙戈$日期时间= 2015年10月6日16:47

+0

很好,他们有一个封闭的错误跟踪器,所以讨厌这个。我相信这个错误在这里是第156行:https://github.com/mongodb/mongo-php-driver/blob/024​​c49c587e5b02d5375b9da2617c450fc5d6c3c/types/date.c 156:zval * datetime_object_ptr =&datetime_object;应该移到169行之后 –