(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 | 处理双重存在的小时(在夏令时切换回退期间)的行为已更改。以前 PHP 会选择第二个出现(在夏令时切换之后),而不是第一个出现(在夏令时切换之前)。 |
| 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