我使用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”)
由于我很新,我似乎无法弄清楚如何解决这个问题。
答案 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中。