Как получить разницу дат в минусе в PHP - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь получить разницу дат в минус-значении, если start_Date больше, чем end_date. ниже мой код

    $diff =  strtotime('2019-07-31') - strtotime('2019-07-21');
    $date_diff = round($diff / 86400);

код дает мне 10 в качестве ответа, но я хочу -10. как я должен получить это?

Ответы [ 2 ]

4 голосов
/ 20 января 2020

Все, что вам нужно использовать %r формат. В этом формате печатается знак минус (-), если разница отрицательная или нет ничего другого.

<?php

function dateDifference($date_1 , $date_2 , $differenceFormat = '%r%a' ) {
    $datetime1 = date_create($date_1);
    $datetime2 = date_create($date_2);

    $interval = date_diff($datetime1, $datetime2);

    return $interval->format($differenceFormat);

}

echo dateDifference('2019-07-31', '2019-07-21'); // -10
3 голосов
/ 20 января 2020

Вот оно. просто поставьте отрицательный знак перед округлением.

$diff =  strtotime('2019-07-31') - strtotime('2019-07-21');
$date_diff =  - round($diff / 86400); // here is the change you need

echo $date_diff;

Выход:

-10 
...