日期时间与微秒
在我的代码中,我使用对象来操作日期,然后将其转换为时间戳,以便将它们保存在一些JSON文件中。DateTime
出于某些原因,我希望拥有与DateTime相同的东西(或接近的东西),但具有微秒级精度(在JSON文件中插入时,我会将其转换为浮点数)。
我的问题是:有没有一个PHP对象,它就像,但也可以处理微秒?DateTime
目标是能够用物体操纵微时间。
在date()文档中,有一些东西表明DateTime可以用微秒为单位创建,但我无法找到方法。
u 微秒(在 PHP 5.2.2 中添加)。请注意,date() 将始终生成 000000,因为它需要一个整数参数,而 DateTime::format() 如果 DateTime 是用微秒创建的,则它支持微秒。
我试图用浮点值()设置DateTime对象的时间戳,但它不起作用(我认为它将时间戳转换为int,导致微秒的丢失)。microtime(true)
这是我如何尝试的
$dt = new DateTime();
$dt->setTimestamp(3.4); // I replaced 3.4 by microtime(true), this is just to give an example
var_dump($dt);
var_dump($dt->format('u'));
正如您在此处看到的,没有考虑(即使我们可以使用对应于微秒的格式)。.4
u
object(DateTime)[1]
public 'date' => string '1970-01-01 01:00:03' (length=19)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Berlin' (length=13)
string '000000' (length=6)
编辑:我看到了这个代码,它允许向DateTime添加微秒,但是在创建DateTime之前,我需要对微时间应用很多修改。由于我将经常使用它,因此我想在获得“微时间对象”之前对微时间进行尽可能少的修改。
$d = new DateTime("15-07-2014 18:30:00.111111");