(PHP 5 >= 5.3.0, PHP 7)
Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
public DateTime DateTime::sub ( DateInterval $interval )
Object oriented style
Procedural style
Subtracts the specified DateInterval object from the specified DateTime object.
Parameters:
object
Procedural style only: A DateTime object returned by date_create(). The function modifies this object.
interval
A DateInterval object
Returns:
Returns the DateTime object for method chaining or FALSE
on failure.
Examples:
DateTime::sub() example
Object oriented style
1 2 3 4 5 | <?php $date = new DateTime( '2000-01-20' ); $date ->sub( new DateInterval( 'P10D' )); echo $date ->format( 'Y-m-d' ) . "\n" ; ?> |
Procedural style
1 2 3 4 5 | <?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' ); ?> |
The above examples will output:
2000-01-10
Further DateTime::sub() examples
1 2 3 4 5 6 7 8 9 | <?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" ; ?> |
The above example will output:
2000-01-19 13:59:30 1992-08-15 19:56:58
Beware when subtracting months
1 2 3 4 5 6 7 8 9 10 | <?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" ; ?> |
The above example will output:
2001-03-30 2001-03-02
See also:
Please login to continue.