PHP 8.4.2 Released!

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTime時刻を設定する

説明

public DateTimeImmutable::setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTimeImmutable

指定された時刻を設定した、 新しい DateTimeImmutable オブジェクト を返します。

パラメータ

hour

その時刻の時。

minute

その時刻の分。

second

その時刻の秒。

microsecond

その時刻のマイクロ秒。

戻り値

変更されたデータを持つ、新しい DateTimeImmutable オブジェクトを返します。

変更履歴

バージョン 説明
8.1.0 (夏時間遷移のフォールバック期間中に) 二重に存在する hour に関する振る舞いが変更されました。 これより前のバージョンでは、 (夏時間遷移が起こる前の)最初の hour ではなく、 (夏時間遷移が起きた後の)二番目の hour を取得していました。
7.1.0 microsecond パラメータが追加されました。

例1 DateTimeImmutable::setTime() の例

オブジェクト指向型

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

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

2001-01-01 14:55:00
2001-01-01 14:55:24

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

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

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

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

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top