DateTimeImmutable::setTime
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — Sets the time
Description
#[\NoDiscard]
public DateTimeImmutable::setTime(
int
int
int
int
): DateTimeImmutable
public 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
Returns a new DateTimeImmutable object with the modified data.
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
Example #1 DateTimeImmutable::setTime() example
Object-oriented style
<?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:
2001-01-01 14:55:00 2001-01-01 14:55:24
Example #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";
?>The above example will 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
See Also
- DateTimeImmutable::setDate() - Sets the date
- DateTimeImmutable::setISODate() - Sets the ISO date
↑ and ↓ to navigate • Enter to select • Esc to close • / to open