Как отобразить общее количество дней между двумя датами, используя php - PullRequest
0 голосов
/ 09 июня 2018

Я хочу посчитать общее количество дней между двумя датами.

Примечание: я не говорю о разнице между двумя датами

Я нашел многоответить на Google и переполнение стека.Я делюсь здесь

$now = time(); // or your date as well
$your_date = strtotime("2018-06-01");
$datediff = $now - $your_date;
echo round($datediff / (60 * 60 * 24));

Выход 9

$now = strtotime("2018-06-09");
$your_date = strtotime("2018-06-01"); 
$datediff = $now - $your_date;
echo $numberDays= round($datediff / (60 * 60 * 24));

Выход 8

$dStart = new DateTime('2018-06-01');
$dEnd  = new DateTime('2018-06-09');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;

Выход 8

$date1=date_create("2018-06-01");
$date2=date_create("2018-06-09");
$diff=date_diff($date1,$date2);
echo $diff->format("%a");

Выход8

$startTimeStamp = strtotime("2018-06-01");
$endTimeStamp = strtotime("2018-06-09");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
echo $numberDays = intval($numberDays); 

Вывод 8

Правильный ответ для меня - первый 9, потому что он показывает общее количество дней от 1 до 9, а не разницу.

Я просто хочу узнать, как получить счет, потому что я не хочу использовать время (), потому что он принимает текущую дату.

Например: если я выберу первую дату 2018-05-01 и мое второе свидание в 2018-05-31.Таким образом, общее количество дней составляет 31, а не 30.

Пример: я работаю над проектом, который связан с рабочими днями и зарплатой.Так что сотрудник выберет дату.например.Я являюсь сотрудником, и в прошлом месяце мае я выбираю даты 2018-05-01 и 2018-05-31, поэтому мне необходимо отобразить общее количество рабочих дней. Таким образом, в соответствии с датой, когда я работал 31 день, и с использованием вышеуказанного кодана вопрос я получаю 30 дней.

Надеюсь, вы понимаете мою проблему.Не могли бы вы помочь мне в этом?

Ответы [ 5 ]

0 голосов
/ 09 июня 2018

Сначала скомпилируйте и напечатайте $now и запишите через несколько минут, во второй раз скомпилируйте и напечатайте $now вы получите разницу

0 голосов
/ 09 июня 2018

здесь я получил ваше решение в первой программе php time ();функция динамически изменяется в соответствии с текущим временем в миллисекундах (в PHP вы можете просто вызвать time (), чтобы получить время, прошедшее с 1 января 1970 года 00:00:00 по Гринвичу в секундах), здесь вы используете функцию округления, чтобы получить округленное значение после 12:00.если ваш расчет увеличится более чем на 8,5, и вы получите округленное значение, которое составляет 9

здесь краткое объяснение Получение метки времени unix в миллисекундах в PHP5 и Actionscript3

в оставшейся частипрограмма, на которую вы берете статическое или нестандартное время, на которое не влияет системное время

    $now = time(); // or your date as well
    $your_date = strtotime("2018-06-01");
    $datediff = $now - $your_date;
    echo round($datediff / (60 * 60 * 24));

попробуйте программу выше 12:00, возможно, вы получили ответ

0 голосов
/ 09 июня 2018

Вы можете попробовать это-

$dateOne = new DateTime("01-01-2018");
$dateTwo = new DateTime("09-06-2018");

echo $diff = $dateTwo->diff($dateOne)->format("%a");

Вывод- 159

0 голосов
/ 09 июня 2018
<?php
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>

Выход: 272 дня.

0 голосов
/ 09 июня 2018

Используйте класс DateTime и сравните их с помощью метода diff().$date1->diff($date2).Вывод даст вам точный результат дней:

$date1 = new DateTime('2018-01-01');
$date2 = new DateTime('2018-02-15');

print_r($date1->diff($date2));

Вывод:

DateInterval Object 
( 
[y] => 0 
[m] => 1 
[d] => 14 
[h] => 0 
[i] => 0 
[s] => 0 
[f] => 0 
[weekday] => 0 
[weekday_behavior] => 0 
[first_last_day_of] => 0 
[invert] => 0 
[days] => 45 
[special_type] => 0 
[special_amount] => 0 
[have_weekday_relative] => 0 
[have_special_relative] => 0 
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...