Получите разницу двух дат в удобном для пользователя формате, используя php - PullRequest
0 голосов
/ 21 октября 2018

Итак, я пытаюсь определить время, пока Дата и время не будут достигнуты удобным для пользователя способом.

Например, скажем, текущая дата и время 2018-09-10 12:00:00, а конечная цель - 2019-11-10 12:00:00 Я хочу просто повторить 1 Год или сказать, что 2018-09-10 13:30:00 echo 1 час , если время меньше минуты, просто скажите 1 минуту.

Я действительно изо всех сил пытаюсь найти какой-либо ресурс, описывающий, как легко это сделать без всякой дерьмовой инструкции if.

Ответы [ 3 ]

0 голосов
/ 21 октября 2018

на самом деле это тихо легко.Если вы используете SQL, вы можете использовать DATEDIFF и отформатировать результат с помощью date_format ().

Если вы просто используете php, вам нужно создать новый объект DateTime () из двух дат.Тогда вы сможете вычесть эти две даты, используя DateInterval ().

Например:

$date1 = new DateTime($your1stDate);
$date2 = new DateTime($your2ndDate);
$result = $date1->diff($date2);
echo date_format($result,'Y-m-d h:m.s'); // or something like that
0 голосов
/ 21 октября 2018

Используйте DateTime класс для преобразования строки даты в объект php.Затем используйте метод DateTime::diff(), чтобы получить разницу двух дат.Также вам нужно проверить значение year, month, day, hour, minute и second, чтобы получить ожидаемый результат.

$sDate = "2018-09-10 12:00:00";
$eDate = "2019-11-10 12:00:00";

$startDate = new DateTime($sDate);
$diff = $startDate->diff(new DateTime($eDate));

if ($diff->y > 0) 
    $diffStr = $diff->y." year";
else if ($diff->m > 0) 
    $diffStr = $diff->m." month";
else if ($diff->d > 0) 
    $diffStr = $diff->d." day";
else if ($diff->h > 0) 
    $diffStr = $diff->h." hour";
else if ($diff->i > 0) 
    $diffStr = $diff->i." minute";
else if ($diff->s > 0) 
    $diffStr = $diff->i." second";
else 
    $diffStr = "dates are same";

echo $diffStr;

Проверить результат в демо

0 голосов
/ 21 октября 2018

Я настоятельно рекомендую вам использовать Carbon s diffForHumans метод .Просто сделайте свою жизнь проще, используя все операции, связанные с датами, до Carbon.

...