DateTime::setISODate
DateTime::setTimestamp
DateTime
PHP Manual

# DateTime::setTime

# date_time_set

Sets the time

### Description

Object oriented style

public DateTime DateTime::setTime ( int `$hour` , int `$minute` [, int `$second` = 0 ] )

Procedural style

DateTime date_time_set ( DateTime `$object` , int `$hour` , int `$minute` [, int `$second` = 0 ] )

Resets the current time of the DateTime object to a different time.

### Parameters

`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.

### Return Values

Returns the DateTime object for method chaining or `FALSE` on failure.

### Changelog

Version | Description
--- | ---
5.3.0 | Changed the return value on success from `NULL` to DateTime.

### Examples

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:

    2000-01-01 14:55:00
    2000-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

### See Also

- DateTime::setDate
- DateTime::setISODate