(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — Sets the time
$hour
,$minute
,$second
= 0,$microsecond
= 0Returns a new DateTimeImmutable object with the time set to the given time.
hour
Hour of the time.
minute
Minute of the time.
second
Second of the time.
microsecond
Microsecond of the time.
返回带有修改数据的新 DateTimeImmutable 对象。
版本 | 说明 |
---|---|
8.1.0 | The behaviour with double existing hours (during the fall-back DST transition) changed. Previously PHP would pick the second occurrence (after the DST transition), instead of the first occurrence (before DST transition). |
7.1.0 | The microsecond parameter was added. |
示例 #1 DateTimeImmutable::setTime() example
面向对象风格
<?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 Values exceeding ranges are added to their parent values
<?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