我存在微秒timestamp = 1484923604957
并且我想创建DateTime对象或只是日期,然后在表中使用列created_at - datetime
在db中设置。我不想在DB中更改类型字段。现在我转换为像这样的日期
$seconds = $mil / 1000;
return date("Y-m-d H:i:s", $seconds);
并且在DB中有2017-01-20 14:46:44
然后获得没有微秒的日期
created_at = "2016-12-29 14:42:05"
我创建了DateTime
$dateTimeClass = date_create_from_format('Y-m-d H:i:s', $date);
return $dateTimeClass;
并作出回应
$dateTimeClass->getTimestamp()*1000
这是最后一微秒
如何正确转换为DatTime(或日期),微秒并返回微秒?
答案 0 :(得分:0)
您需要将created_at - DATETIME
的db字段类型更改为DATETIME(6)
微秒。如果没有它,你将无法得到精确的时间,以微秒为单位,因为它不会存储在数据库中。
答案 1 :(得分:0)
如果使用微秒创建对象,则可以使用$dateTime->format('u')
将对象转换为微秒。请参阅the documentation for date。
微秒(在PHP 5.2.2中添加)。请注意,date()将始终生成000000,因为它采用整数参数,而DateTime :: format()确实支持微秒,如果使用微秒创建DateTime。