【问题标题】:Why does PHP print ISO date with leading 0.00000000为什么 PHP 打印 ISO 日期前导 0.00000000
【发布时间】:2014-08-05 20:45:34
【问题描述】:

我在 MongoDB 中存储了 ISO 日期。

> db.myDB.find()
{ "_id" : ObjectId("..."), "time" : ISODate("2014-08-05T11:18:55Z) }

当我在 PHP 中回显它时,它的显示方式与数据库不同。

echo $document["time"] // Prints 0.00000000 1407236935

零是怎么回事?它以什么格式打印?有没有一种我可以使用的格式可以打印得更好,以便人类可以精确到分钟来确定它?

【问题讨论】:

标签: php mongodb date timestamp iso


【解决方案1】:

日期对象

MongoDB PHP 驱动程序使用MongoDate 类来表示日期对象。

如果您使用以下命令检查变量的内容:

var_dump($document["time"])

...您将看到内部类属性:

object(MongoDate)#7 (2) {
   ["sec"]=>
   int(1407299400)
   ["usec"]=>
   int(313000)
}

.. 如您所见,如果您尝试 echo() MongoDate 对象,则 stringify 到一对类似于 microtime() 的整数:

0.31300000 1407299400

格式化MongoDate

要格式化为“人类可读”,您可以将 MongoDate 值(以秒为单位)传递给标准 PHP date() 函数:

 echo date('F j, Y g:i a', $document["time"]->sec), "\n";

.. 应该输出类似于:

 August 6, 2014 2:30 pm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多