2023年6月15日16:13:29
date()
函数默认只能获取到秒级的时间戳,无法直接获取微秒级的时间
建议使用 DateTime
or DateTimeImmutable
DateTime
此类与 DateTimeImmutable
行为相同。区别就是调用有修改行为的方法(比如 DateTime::modify()
)时,会修改对象本身。
警告
在 DateTime
类的对象上调用方法会改变对象中封装的信息,如果想要避免这种情况,就得使用 clone 操作符创建新的对象。推荐使用 DateTimeImmutable
代替 DateTime
来获得这个默认行为。
如果你需要频繁地修改日期和时间对象,或者希望通过引用传递来修改原始对象,可以使用DateTime
类。如果你需要保持日期和时间对象的不可变性,并且每次修改都返回一个新的对象,可以使用DateTimeImmutable
类。
$dateTime = new DateTime('-1 day');
p($dateTime->format('Y-m-d H:i:s.u'));
$dateTime = new DateTimeImmutable('-1 day');
p($dateTime->format('Y-m-d H:i:s.u'));
__construct
构造方法也是支持strtotime()
的类似操作