DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTime -- date_time_setSets the time

说明

面向对象风格

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

过程化风格

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

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

参数

object

仅过程化风格:由 date_create() 返回的 DateTime 类型的对象。此函数会修改这个对象。

hour

Hour of the time.

minute

Minute of the time.

second

Second of the time.

microseconds

Microsecond of the time.

返回值

返回被修改的 DateTime 对象, 或者在失败时返回 FALSE.

更新日志

版本 说明
7.1.0 The microseconds parameter was added.
5.3.0将返回值从NULL改为 DateTime 类型。

范例

Example #1 DateTime::setTime() example

面向对象风格

<?php
$date 
= new DateTime('2001-01-01');

$date->setTime(1455);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(145524);
echo 
$date->format('Y-m-d H:i:s') . "\n";
?>

过程化风格

<?php
$date 
date_create('2001-01-01');

date_time_set($date1455);
echo 
date_format($date'Y-m-d H:i:s') . "\n";

date_time_set($date145524);
echo 
date_format($date'Y-m-d H:i:s') . "\n";
?>

以上例程的输出类似于:

2001-01-01 14:55:00
2001-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(145524);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(145565);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(146524);
echo 
$date->format('Y-m-d H:i:s') . "\n";

$date->setTime(255524);
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

参见

User Contributed Notes

fabien dot villepinte at gmail dot com 21-Apr-2017 11:12
A 4th parameter has been added in PHP-7.1 : microseconds

See the notes here:
https://github.com/php/php-src/blob/e33ec61f9c1baa73bfe1b03b8c48a824ab2a867e/UPGRADING#L285