Как получить разницу между двумя днями в php


У меня есть функция, которая передает некоторый параметр, подобный

everyWeekOn("Mon",11,19,00)

Я хочу вычислить разницу между текущим днем (например, "Пятница") и днем переданного параметра, т.Е. Mon.

Вывод должен быть:

The difference between Mon and Fri is 3

Я попробовал это так

 $_dt = new DateTime();
 error_log('$_dt date'. $_dt->format('d'));
 error_log('$_dt year'. $_dt->format('Y'));
 error_log('$_dt month'. $_dt->format('m'));

Но знайте, что я не знаю, что делать дальше, чтобы получить разницу между этими двумя днями.

Обратите внимание, что этот вопрос отличается от Как рассчитать разницу между двумя датами с помощью PHP? потому что у меня есть только день, а не полное свидание.

Author: Community, 2015-04-17

3 answers

Просто реализуйте класс DateTime в сочетании с методом ->diff:

function everyWeekOn($day) {
    $today = new DateTime;
    $next = DateTime::createFromFormat('D', $day);
    $diff = $next->diff($today);
    return "The difference between {$next->format('l')} and {$today->format('l')} is {$diff->days}";
}

echo everyWeekOn('Mon');
 3
Author: Ghost, 2015-04-17 06:31:55
$date = new DateTime('2015-01-01 12:00:00');
$difference = $date->diff(new DateTime());
echo $difference->days.' days <br>';
 1
Author: Maxim Lazarev, 2015-04-17 06:25:16

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

<?php
    $today = time(); 
    $chkdate = strtotime("16-04-2015");
    $date = $today - $chkdate;
    echo floor($date/(60*60*24));
?>

Пожалуйста, используйте это, может быть, это поможет вам

 0
Author: Sourabh, 2015-04-17 07:05:09