Установите дату с сегодняшнего дня как разницу между 2 другими датами - PullRequest
0 голосов
/ 06 марта 2019

Я рассчитываю разницу между 2 датами

$diff = abs(strtotime($result2["expiry_date"]) - strtotime($result2["start_date"]));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

Но я хочу установить новую переменную ($new_date) как разницу между двумя вышеуказанными датами.

Например,

$result2["expiry_date"] = '2018-03-06'
$result2["start_date"] = '2019-03-06'

Разница составляет 1 год

т., $new_date = '2020-03-06'

По сути, мне нужно установить $new_date, который является новым expiry_date.

Так что мне нужно выяснить время между текущим началом и датой истечения срока действия, затем добавить тот же период к expiry_date, чтобы получить новую дату истечения срока действия

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Вам нужно добавить разницу в дате к дате начала

 $date2='2019-03-06';
    $date1='2018-03-06';


    $timeDiff = abs(strtotime($date2) - strtotime($date1));

    $numberDays = $timeDiff/86400;  // 86400 seconds in one day

    $numberDays = intval($numberDays)+1;

    echo date('Y-m-d', strtotime($date2. " + $numberDays days"));

OP:

2020-03-06
1 голос
/ 06 марта 2019
$result2["expiry_date"] = new \DateTime('2018-03-06');
$result2["start_date"] = new \DateTime('2019-03-06');

$diff = $result2["expiry_date"]->diff($result2["start_date"]);
$newDate = (new \DateTime())->add($diff);
var_dump($newDate->format('Y-m-d'));
1 голос
/ 06 марта 2019

Вам не нужна эта сложная функция, если вы просто используете строки даты

$datetime1 = new DateTime('2017-03-06');
$datetime2 = new DateTime('2018-03-06');
$datetime3 = $datetime2->add(new DateInterval('P' . $datetime1->diff($datetime2)->y . 'Y'));

echo $datetime3->format('Y-m-d');

Это работает только в том случае, если разница указана в годах, но вы также можете легко изменить значение DateInterval на другое значение разницы (месяц, дни и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...