Получение разницы между двумя датами в php дает ошибку - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь найти разницу между двумя датами в php, первая дата поступает из моей базы данных (в формате datetime), поэтому я конвертирую ее в дату, а затем нахожу разницу, используя текущую дату. мой код, как показано ниже:

$ret=mysqli_query($con,"select * from members");
$cnt=1;
while ($row=mysqli_fetch_array($ret))
{
  $date_time = $row['date'];
  $new_date = date("Y-m-d",strtotime($date_time));
  $dates = date('Y-m-d');
  $diff = $new_date->diff($dates);

  echo $diff;
}

, тогда я получаю следующую ошибку:

Uncaught Ошибка: вызов функции diff () члена в строке в C: \ xampp \ htdocs \ form \ admin \ members. php: 123 Трассировка стека: # 0 {main} добавляется в C: \ xampp \ htdocs \ form \ admin \ members. php в строке 123

Может кто-нибудь сказать, пожалуйста, что я делаю здесь не так. заранее спасибо

Ответы [ 3 ]

2 голосов
/ 03 февраля 2020

Функция даты возвращает строку. https://www.php.net/manual/en/function.date.php

Вы можете использовать функцию date_diff для сравнения дат в строковом формате https://www.php.net/manual/en/function.date-diff.php

или использовать класс DateTime с методом diff. https://www.php.net/manual/en/class.datetime.php

0 голосов
/ 03 февраля 2020

date() функция возвращает строку. Вам необходимо создать объект класса DateTime. Ваш l oop должен выглядеть примерно так:

foreach ($ret as $row) {
    $new_date = new \DateTime($row['date']);
    $diff = $new_date->diff(new \DateTime());

    var_dump($diff);
}
0 голосов
/ 03 февраля 2020

Используйте функцию date_diff вместо обозначения объекта здесь, DateTime object, если вы хотите, чтобы ваша дата была Object

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