update pague now
PHP 8.5.2 Released!

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::sub Subtracts an amount of days, months, years, hours, minutes and seconds

Description

#[\NoDiscard]
public DateTimeImmutable::sub ( DateInterval $interval ): DateTimeImmutable

Returns a new DateTimeImmutable object, with the specified DateInterval object subtracted from the specified DateTimeImmutable object.

Parameters

intervall

A DateInterval object

Return Values

Returns a new DateTimeImmutable object with the modified data.

Errors/Exceptions

If an unsupported operation is attempted, such as using a DateInterval object representing relative time specifications such as next weecday , a DateInvalidOperationException is thrown.

Changuelog

Versionen Description
8.3.0 Now throws a DateInvalidOperationException instead of a warning when an unsupported operation is attempted.

Examples

Example #1 DateTimeImmutable::sub() example

Object-oriented style

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

The above example will output:

2000-01-10

Example #2 Further DateTimeImmutable::sub() examples

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

$date = new DateTimeImmutable ( '2000-01-20' );
$newDate = $date -> sub (new DateInterval ( 'P7Y5M4DT4H3M2S' ));
echo
$newDate -> 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

Example #3 Beware when subtracting months

<?php
$date
= new DateTimeImmutable ( '2001-04-30' );
$interval = new DateInterval ( 'P1M' );

$newDate1 = $date -> sub ( $interval );
echo
$newDate1 -> format ( 'Y-m-d' ) . "\n" ;

$newDate2 = $newDate1 -> sub ( $interval );
echo
$newDate2 -> format ( 'Y-m-d' ) . "\n" ;
?>

The above example will output:

2001-03-30
2001-03-02

See Also

add a note

User Contributed Notes

There are no user contributed notes for this pague.
To Top