Funkcja, która zwraca convertDate($date, $days, $hours, $minutes, $seconds), która zwróci zmodyfikowaną datę wg. zasad:
Do przekazanej jako argument daty np. 19.10.2016 15:14:24 dodana ma zostać odpowiednia ilość dni, godzin, minut i sekund Przekazane wartości mogą być również ujemne, wówczas odpowiednią ilość należy odjąć od daty
<?php
function convertDate($date, $days, $hours, $minutes, $seconds) {
$dateTime = new DateTime($date);
if ($days > 0) {
$dateTime->modify("+ $days days");
} else {
$dateTime->modify("- ".abs($days)." days");
}
if ($hours > 0) {
$dateTime->modify("+ $hours hours");
} else {
$dateTime->modify("- ".abs($hours)." hours");
}
if ($minutes > 0) {
$dateTime->modify("+ $minutes minutes");
} else {
$dateTime->modify("- ".abs($minutes)." minutes");
}
if($seconds > 0){
$dateTime->modify("+ $seconds seconds");
}else{
$dateTime->modify("- ".abs($seconds)." seconds");
}
echo $dateTime->format("d.m.Y H:i:s");
}
#$date = '19.10.2016 15:14:24';
#convertDate($date, 3, 1, 0, 15);
//zwróci 22.10.2016 16:14:39
$date = '19.10.2016 15:14:24';
convertDate($date, -4, -2, 9, 15);
//zwróci 15.10.2016 13:23:39