在Mongodb中插入ISODate,毫秒

时间:2017-07-27 11:58:57

标签: php mongodb isodate

我使用php_mongodb-1.2.2-7.0-nts-vc14-x64驱动程序运行PHP 7.

$ar = new \MongoDB\BSON\UTCDateTime(strtotime('2017-07-27 06:17:25.123000') * 1000);

以上陈述的输出是:

  

ISODate( “2017-07-27T06:17:25.000 + 0000”)

但我需要几毫秒,如:

  

ISODate( “2017-07-27T06:17:25.123 + 0000”)

由于我很新,我似乎无法弄清楚如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

strtotime不支持毫秒。

  

strtotime - 将任何英文文本日期时间描述解析为   Unix时间戳

因此strtotime('2017-07-27 06:17:25.123000')strtotime('2017-07-27 06:17:25')会返回相同的结果1501136245

您必须使用DateTime:

<?php
$date = DateTime::createFromFormat('Y-m-d H:i:s u', '2017-07-27 06:17:25 123000');
$ar = new \MongoDB\BSON\UTCDateTime($date->format('U.u'));

答案 1 :(得分:0)

你可以这样做

function mongo_current_datetime(){
    $date = new \MongoDB\BSON\UTCDateTime(strtotime('now') * 1000);
    return $date;
}

示例输出:

<块引用>

MongoDB\BSON\UTCDateTime 对象 ( [毫秒] => 1610972571000 )

上面的函数以毫秒为单位准备当前日期时间对象,准备插入到mongoDB中。