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
): DateTimeParameters
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] => 2024-09-30 20:21:41.885332
[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] => 2024-09-30 20:21:41.944896
[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);
2024-11-08 09:22:43 2025-10-08 09:22:43 2025-11-01 09:22:43 2025-11-07 09:22:43 2025-11-08 08:22:43 2025-11-08 09:21:43 2025-11-08 09:22:42
Links
Related
Date / Time
- checkdate
- date
- date_add
- date_create
- date_create_from_format
- date_create_immutable
- date_create_immutable_from_format
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse
- date_parse_from_format
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- strtotime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get