14、PHP 8.4 新特性 - 日期:新增 DateTime(Immutable)::createFromTimestamp 方法
在 PHP 8.4 中,DateTime
和 DateTimeImmutable
类新增了 createFromTimestamp()
方法,用于通过 Unix 时间戳(即自 1970 年 1 月 1 日以来的秒数)创建一个 DateTime
或 DateTimeImmutable
对象。
这个新方法为开发者提供了一个更简便的方式来基于时间戳创建日期时间对象,特别是在处理来自文件、数据库或 API 的时间戳时。
背景说明
在早期版本的 PHP 中,创建 DateTime
对象的常见方法是使用 DateTime::setTimestamp()
或 DateTimeImmutable::setTimestamp()
。不过,这些方法需要先创建一个 DateTime
或 DateTimeImmutable
实例,然后再设置时间戳。PHP 8.4 引入的 createFromTimestamp()
方法简化了这个过程,让开发者可以通过直接提供时间戳来创建对象。
<?php
declare(strict_types=1);
// 以前的操作方法
$unixTime = time();
$dt = new DateTime();
$dt->setTimestamp($unixTime);
echo $dt->format('Y-m-d');
新增 createFromTimestamp()
方法
类方法概要
class DateTime {
// ...
public static function createFromTimestamp(int|float $timestamp): static {}
}
class DateTimeImmutable {
// ...
public static function createFromTimestamp(int|float $timestamp): static {}
}
-
$timestamp
:Unix 时间戳,表示自 1970 年 1 月 1 日以来的秒数,通常是一个整数值。 -
返回值:返回一个
DateTime
或DateTimeImmutable
对象,或者在发生错误时返回false
。
方法介绍
-
DateTime::createFromTimestamp()
:该方法创建一个可变的DateTime
对象。返回的对象允许对时间进行修改。 -
DateTimeImmutable::createFromTimestamp()
:该方法创建一个不可变的DateTimeImmutable
对象。返回的对象一旦创建后无法修改,如果需要修改时间,需要生成一个新的对象。
使用案例
使用 DateTime::createFromTimestamp()
<?php
declare(strict_types=1);
$timestamp = time();
// 使用 DateTime 创建对象
$dateTime = DateTime::createFromTimestamp($timestamp);
echo $dateTime->format('Y-m-d H:i:s');
使用 DateTimeImmutable::createFromTimestamp()
<?php
declare(strict_types=1);
$timestamp = time();
// 使用 DateTimeImmutable 创建不可变对象
$dateTimeImmutable = DateTimeImmutable::createFromTimestamp($timestamp);
echo $dateTimeImmutable->format('Y-m-d H:i:s');
请登录后再评论