@ikoit
Web Developer

Как вычесть один день из даты в массиве?

Как вычесть один день из даты в массиве?

$userId = $_SESSION["profile"]["id"];
      
      $pdo = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8mb4', 'username, password');

      $adsFinishNotifications = $pdo->prepare('SELECT `ads_title`, `ads_period_publication` FROM `uni_ads` WHERE `ads_id_user`=:iduser');
      
      $adsFinishNotifications->execute([':iduser' => $userId]);
      
      $result_array = $adsFinishNotifications->fetchAll();

      foreach ($result_array as $result_row) {

         $adsTitle = $result_row["ads_title"];

         $dateFinish = $result_row["ads_period_publication"];

         $dateFinishSec = strtotime($dateFinish. " - 1 day");

         $dateNow = date("Y-m-d H:i:s");

         $dateNowSec = strtotime($dateNow);

         if($dateFinishSec == $dateNowSec){
            echo '<li class="blog-notifications">';
            echo '<i class="las la-sticky-note"></i>';
            echo '<a href="' . _link( "user/" . $user["clients_id_hash"] . "/ad" ) . '">' . $adsTitle  . ' — срок объявления подходит к концу. Конец: '. $dateFinish .'</a>';
            echo '</li>';
         }

      }

      $pdo = null;
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В чём задача? Показывать записи, до конца действия которых осталось меньше суток?
С этим гораздо лучше справится сама БД:
SELECT `ads_title`, `ads_period_publication`
  FROM `uni_ads`
  WHERE `ads_id_user` = :iduser
    AND `ads_period_publication` BETWEEN NOW() AND NOW() + INTERVAL 1 DAY
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы