HomeMenu
Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

date_sub

Description

The date_sub of Date / Time for PHP subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object.

Syntax

date_sub(
    DateTime $object,
    DateInterval $interval
): DateTime

Parameters

object

A DateTime object returned by date_create(). The function modifies this object.

interval

A DateInterval object

Return

Returns the modified DateTime object for method chaining.

Examples

1 · object interval

<?

$object = date_create();
$interval = date_interval_create_from_date_string("1 year 1 month 1 week 1 day 1 hour 1 minute 1 second");

date_sub($object, $interval);

print_r($object);
DateTime Object
(
    [date] => 2025-03-03 03:39:20.335069
    [timezone_type] => 3
    [timezone] => UTC
)

2 · return

<?

$object = date_create();
$interval = date_interval_create_from_date_string("1 year 1 month 1 week 1 day 1 hour 1 minute 1 second");

$return = date_sub($object, $interval);

print_r($return);
DateTime Object
(
    [date] => 2025-03-03 03:39:21.174844
    [timezone_type] => 3
    [timezone] => UTC
)

3 · date_format

<?

$format = "Y-m-d h:i:s";

$object = date_create();
$interval = date_interval_create_from_date_string("1 year");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 month");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 week");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 day");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 hour");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 minute");
date_sub($object, $interval);
echo date_format($object, $format) . PHP_EOL;

$object = date_create();
$interval = date_interval_create_from_date_string("1 second");
date_sub($object, $interval);
echo date_format($object, $format);
2025-04-11 04:40:23
2026-03-11 04:40:23
2026-04-04 04:40:23
2026-04-10 04:40:23
2026-04-11 03:40:23
2026-04-11 04:39:23
2026-04-11 04:40:22