(PHP 5 >= 5.2.0)
DateTime::setTime — Sets the time
Resets the current time of the DateTime object to a different time.
Procedural style only: A DateTime object returned by date_create()
Hour of the time.
Minute of the time.
Second of the time.
Returns the modified DateTime.
Example #1 Changing the time of a DateTime object
<?php
date_default_timezone_set('Europe/London');
$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";
$datetime->setTime(14, 55, 24);
echo $datetime->format('Y-m-d H:i:s') . "\n";
// Warning: Does not increment the hour!
// This is because the hour has been set (14) - see date_modify()
$datetime->setTime($datetime->format('H'), $datetime->format('n') + 6);
echo $datetime->format('Y-m-d H:i:s') . "\n";
// *Does* increment the day, because the day has not been set
$datetime->setTime($datetime->format('H') + 12, $datetime->format('n'));
echo $datetime->format('Y-m-d H:i:s') . "\n";
?>
The above example will output:
2008-08-03 12:35:23 2008-08-03 14:55:24 2008-08-03 14:14:00 2008-08-04 02:08:00