Функция для определения оставшегося времени до заданной даты на php

Изящное решение для тех кто еще не пересел на php 5.3 и не имеет возможности обратиться к классу DateTime, но собирается это сделать в скором будущем =) Функция выводит кол-во дней, часов и минут до назначенной даты. Цели выводить большие промежутки больше месяца не стояло, поэтому максимальная единица - день. Но если понадобится месяц или год - думаю логика работы функции прозрачна, допиливается по аналогии.

<?php
public function  getTimeToEnd()
{
   $startDay = new DateTime('now');

   $startDay = (int)$startDay->format('U');
   $endDay = (int)$endDay->format('U');

   if ($startDay < $endDay) {
       $timeToEnd =  $endDay - $startDay;
   }

   } else {
       $startDay = strtotime("now");
       $endDay = strtotime($this->date_end);
       if ($startDay < $endDay) {
           $seconds = $endDay - $startDay;
           $d = floor($seconds / 86400);
           $h = floor(($seconds % 86400) / 3600);
           $m = floor((($seconds % 86400) % 3600) / 60);
           $timeToEnd = "$d дн. $h ч. $m мин.";
       }
   }

   return $timeToEnd;
}

 

Комментарии