(PHP 5 >= 5.2.0, PHP 7)
DateTime::setTime -- date_time_set — Sets the time
Object oriented style
$hour
, int $minute
[, int $second
= 0
[, int $microseconds
= 0
]] ) : DateTimeProcedural style
$object
, int $hour
, int $minute
[, int $second
= 0
[, int $microseconds
= 0
]] ) : DateTimeResets the current time of the DateTime object to a different time.
object
Procedural style only: A DateTime object returned by date_create(). The function modifies this object.
hour
Hour of the time.
minute
Minute of the time.
second
Second of the time.
microseconds
Microsecond of the time.
Returns the DateTime object for method chaining or FALSE
on failure.
Version | Description |
---|---|
7.1.0 | The microseconds parameter was added. |
5.3.0 | Changed the
return value on success from NULL to DateTime. |
Example #1 DateTime::setTime() example
Object oriented style
<?php
$date = new DateTime('2001-01-01');
$date->setTime(14, 55);
echo $date->format('Y-m-d H:i:s') . "\n";
$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>
Procedural style
<?php
$date = date_create('2001-01-01');
date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
?>
The above examples 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 DateTime('2001-01-01');
$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
$date->setTime(14, 55, 65);
echo $date->format('Y-m-d H:i:s') . "\n";
$date->setTime(14, 65, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
$date->setTime(25, 55, 24);
echo $date->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