DateTime::setISODate
DateTime::setTimestamp
DateTime
PHP Manual

# DateTime::setTime

# date_time_set

(PHP 5 >= 5.2.0)

DateTime::setTime -- date_time_set — 時刻を設定する

### 説明

オブジェクト指向型

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

手続き型

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

DateTime オブジェクトの現在時刻を別の時刻にリセットします。

### パラメータ

`object`

  手続き型のみ: date_create() が返す DateTime オブジェクト。 この関数は、このオブジェクトを変更します。

`hour`

  その時刻の時。

`minute`

  その時刻の分。

`second`

  その時刻の秒。

### 返り値

メソッドチェインに使う DateTime オブジェクトを返します。失敗した場合に `FALSE` を返します。

### 変更履歴

バージョン | 説明
--- | ---
5.3.0 | 成功した場合の返り値が `NULL` から DateTime に変更されました。

### 例

例1 DateTime::setTime() の例

オブジェクト指向型

`<?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";
?>`

手続き型

`<?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";
?>`

上の例の出力は、 たとえば以下のようになります。

    2000-01-01 14:55:00
    2000-01-01 14:55:24

例2 範囲を超えた値が親の値に加算される例

`<?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";
?>`

上の例の出力は以下となります。

    2001-01-01 14:55:24
    2001-01-01 14:56:05
    2001-01-01 15:05:24
    2001-01-02 01:55:24

### 参考

- DateTime::setDate() - 日付を設定する
- DateTime::setISODate() - ISO 日付を設定する

DateTime::setISODate
DateTime::setTimestamp
DateTime
PHP Manual