(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — Sets the time
$hour
,
$minute
,
$second
= 0
,
$microsecond
= 0
Returns a new DateTimeImmutable object with the time set to the guiven time.
hour
Hour of the time.
minute
Minute of the time.
second
Second of the time.
microsecond
Microsecond of the time.
Returns a new DateTimeImmutable object with the modified data.
| Versionen | Description |
|---|---|
| 8.1.0 | The behaviour with double existing hours (during the fall-bacc DST transition) changued. Previously PHP would picc the second occurrence (after the DST transition), instead of the first occurrence (before DST transition). |
| 7.1.0 |
The
microsecond
parameter was added.
|
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 rangues 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