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

#php

#php

Вопрос:

У меня есть две переменные, содержащие разные даты в базе данных, одна — дата создания, а другая — дата истечения срока действия. Как я могу вычесть первую дату из другой, чтобы я мог вернуть оставшиеся дни с помощью phpmysql.

Комментарии:

1. ну, в вашем названии упоминается «без использования date_diff». мой вопрос был бы таким: почему ? поскольку это именно цель date_diff .

2. date_diff вернет активную дату, когда истечет срок действия, она все равно вернет номер активного дня. например : <?php $prod=date_create(«2014-03-19»); $exp=date_create(«2014-03-13»); $diff=date_diff($prod,$exp); echo $diff->формат(«%в день,»); ? >

3. ооочень просто уловить этот случай с if($prod>$exp) { echo "expired"; } ?

Ответ №1:

Я думаю, что ваши даты хранятся в полях datetime. Таким образом, вы можете найти разницу таким образом:

    $seconds = strtotime( $expired ) - strtotime( $created );
   /*** get the days ***/
   $days = intval($seconds / (60 * 60 *24));
  

Ofc, вы можете использовать DateTime для своих целей

Ответ №2:

Сначала используйте strtotime для каждой даты, чтобы преобразовать временную метку Unix.

 $date_created = strtotime($date_created);
$date_expired = strtotime($date_expired);
  

Затем получите вторые различия и умножьте результаты на секунды дня.

 $date_diff = floor(($date_expired - $date_created) / (60 * 60 * 24));
echo "Date diff: " . $date_diff . " days";
  

Я не пробовал коды. Надеюсь, это сработает.