Дни между двумя датами не работают в PHP - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно вычислить дни между двумя датами (формат ГГГГММДД)

Я использовал две контрольные даты, 2020-01-20 и 2020-02-20

$enddate = "20200220";
$startdate = "20200120";
$s = new DateTime($enddate);
$e = new DateTime($startdate);
$diff = $s->diff($e);
echo "days: ".$diff->d;

результат0 вместо того, чтобы быть количеством дней в месяце

days: 0

Я понимаю, что даты в виде строк могут быть неоднозначными, поэтому я также попытался указать формат,выполнив:

$enddate = "20200220";
$startdate = "20200120";
$s = DateTime::createFromFormat('Ymd', $startdate);
$e = DateTime::createFromFormat('Ymd', $enddate);
$diff = $s->diff($e);
echo "days: ".$diff->d; 

Все еще получил 0

дней: 0

1 Ответ

0 голосов
/ 09 ноября 2019

Вы можете использовать strtotime

<?php

// strtotime converts any string date format to unix time

$date1 = "2020-01-20";
$date2 = "2020-02-20";

$seconds_in_a_day = 86400;


$diff = (strtotime($date2) - strtotime($date1))/$seconds_in_a_day;

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