How to subtract some days in php?
The date_sub() is an inbuilt function in PHP which is used to subtract some days, months, years, hours, minutes, and seconds from given date. The function returns a DateTime object on success and returns FALSE on failure.
1. Code:
<?php
function getDateSubWithFormat($dateStr, $day, $format = ''){
if(!isset($format) && $format == '' ){
$format = "Y-m-d H:i:s";
}
if (is_null($dateStr) || trim($dateStr) == '' || "0000-00-00 00:00:00" == trim($dateStr)) {
return null;
}
try {
$d = date_create_from_format($format, $dateStr);
if (false === $d) {
throw new \Exception ("Invalid date");
}
}catch (\Exception $e) {
return $dateStr;
}
date_sub($d, date_interval_create_from_date_string("$day days"));
$str = $d->format($format);
return (false != $str) ? $str : null;
}
echo(getDateSubWithFormat("2022-06-27 01:12:22", 5, "Y-m-d H:i:s"));
?>
2. Example:
Input:
"2022-06-27 01:12:22", 5, "Y-m-d H:i:s"
Output:
2022-06-22 01:12:22