DateTimeImmutable::setTime
PHP function
Edit on GitHub ✎
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Sets the time
Description
DateTimeImmutable::setTime(int $hour, int $minute, int $second = 0, int $microsecond = 0): DateTimeImmutable
Returns a new DateTimeImmutable object with the time set to the given time.
Parameters
hourHour of the time.
minuteMinute of the time.
secondSecond of the time.
microsecondMicrosecond of the time.
Return Values
Modifiedobject
Changelog
| Version | Description |
|---|---|
| 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. |
Examples
DateTimeImmutable::setTime() example
Oop
php
<?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";
?>The above example will output something similar to:
output
2001-01-01 14:55:00
2001-01-01 14:55:24Values exceeding ranges are added to their parent values
php
<?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";
?>The above example will output:
output
2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24