时间类的接口
从DateTimeInterface继承
从DateTimeInterface继承,同DataTime基本一样,只是在调用了修改相关的函数,如modify时,会返回新的对象
用的少,后续补上
时间间隔类,时间间隔表示固定量的时间(多少年,月,天,小时等),也可以表示一个字符串格式的相对时间,当表示相对时间的时候,字符串格式是 DateTimeImmutable 和 DateTime 类的构造函数所支持的格式。
创建 DateInterval 对象的常用方法是通过 DateTimeInterface::diff() 计算两个日期/时间对象之间的差异。由于没有明确定义的方法来比较日期间隔,因此 DateInterval 实例是无法比较的。
常用的DataInterval构造方式举例:
1天,new DateInterval(‘P1D’)
1年1月1天1小时1分1秒,new DateInterval(‘P1Y1M1DT1H1M1S’)
说明:
以上构造函数传入字符串称为Duration,一串描述间隔日期的字符串,
P之后的表示是年、月、日、周,T之后是时、分、秒。大的单位必须在前,如一年一天为’P1Y1D’而不是’P1D1Y’。
DatePeriod 类表示一个时间周期。
时间周期内允许对一组日期和时间进行迭代,在指定的时间间隔内定期重复。
后续补上
date_default_timezone_set('Asia/Shanghai');
/*
* @brief 返回最近时间范围
* @duration 参看DateInterval构造函数,间隔时间字串,如P1D, P1YT1H等
*/
function getLatestDateTimeRange( $duration )
{
$endTime = new DateTime('now');
$beginTime = clone $endTime;
$beginTime->sub( new DateInterval($duration ));
return array($beginTime, $endTime);
}
list($begin, $end) = getLatestDateTimeRange( 'P1D');
echo $begin->format('Y-m-d H:i:s') . '
'; //按此格式输出 2022-11-21 15:49:39
echo $end->format('Y-m-d H:i:s') . '
'; //按此格式输出 2022-11-22 15:49:39
echo $begin->getTimestamp() . '
'; //输出时间戳,单位S
echo $end->getTimestamp() . '
'; //输出时间戳,单位S
?>