(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — 设置时间
$hour
,$minute
,$second
= 0,$microsecond
= 0返回一个新的 DateTimeImmutable 对象,其时间设置为给定的时间。
hour
时间的时。
minute
时间的分钟。
second
时间的秒。
microsecond
时间的微秒。
返回一个新的 DateTimeImmutable 对象,其中包含修改后的数据。
版本 | 描述 |
---|---|
8.1.0 | 对双重存在的小时(在秋季 DST 过渡期间)的行为进行了更改。以前 PHP 会选择第二次出现(在 DST 过渡之后),而不是第一次出现(在 DST 过渡之前)。 |
7.1.0 | 添加了 microsecond 参数。 |
示例 #1 DateTimeImmutable::setTime() 示例
面向对象风格
<?php
$date = new DateTimeImmutable('2001-01-01');
$newDate = $date->setTime(14, 55);
echo $newDate->format('Y-m-d H:i:s') . "\n";
$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>
上面的示例将输出类似以下内容
2001-01-01 14:55:00 2001-01-01 14:55:24
示例 #2 超出范围的值将添加到其父值中
<?php
$date = new DateTimeImmutable('2001-01-01');
$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
$newDate = $date->setTime(14, 55, 65);
echo $newDate->format('Y-m-d H:i:s') . "\n";
$newDate = $date->setTime(14, 65, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
$newDate = $date->setTime(25, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>
上面的示例将输出
2001-01-01 14:55:24 2001-01-01 14:56:05 2001-01-01 15:05:24 2001-01-02 01:55:24