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 处理双重存在的小时(在夏令时切换回退期间)的行为已更改。以前 PHP 会选择第二个出现(在夏令时切换之后),而不是第一个出现(在夏令时切换之前)。
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