PHP Conference Japan 2024

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 處理重複小時(在 DST 轉換回標準時間期間)的行為已更改。先前 PHP 會選擇第二次出現的小時(DST 轉換後),而不是第一次出現的小時(DST 轉換前)。
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

另請參閱:

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top