PHP
日期和时间 | Date and Time

DateTime::sub

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

DateTime :: sub - date_sub - 从DateTime对象中减去天数,月数,年数,小时数,分钟数和秒数

描述

面向对象的风格

public DateTime DateTime::sub ( DateInterval $interval )

程序风格

DateTime date_sub ( DateTime $object , DateInterval $interval )

从指定的DateTime对象中减去指定的DateInterval对象。

参数

object

仅限过程样式:由date_create()返回的DateTime对象。该函数修改这个对象。

interval

DateInterval对象

返回值

返回方法链接或FALSE失败时的DateTime对象。

例子

示例 #1 DateTime::sub() example

面向对象的风格

<?php $date = new DateTime('2000-01-20' $date->sub(new DateInterval('P10D') echo $date->format('Y-m-d') . "\n"; ?>

程序风格

<?php $date = date_create('2000-01-20' date_sub($date, date_interval_create_from_date_string('10 days') echo date_format($date, 'Y-m-d' ?>

上面的例子会输出:

2000-01-10

示例 #2 Further DateTime::sub() examples

<?php $date = new DateTime('2000-01-20' $date->sub(new DateInterval('PT10H30S') echo $date->format('Y-m-d H:i:s') . "\n"; $date = new DateTime('2000-01-20' $date->sub(new DateInterval('P7Y5M4DT4H3M2S') echo $date->format('Y-m-d H:i:s') . "\n"; ?>

上面的例子将输出:

2000-01-19 13:59:30 1992-08-15 19:56:58

例#3当减去几个月时要小心

<?php $date = new DateTime('2001-04-30' $interval = new DateInterval('P1M' $date->sub($interval echo $date->format('Y-m-d') . "\n"; $date->sub($interval echo $date->format('Y-m-d') . "\n"; ?>

上面的例子将输出:

2001-03-30 2001-03-02

注意

使用PHP 5.2时,DateTime :: modify()是一种替代方法。