Оставшееся время
15.11.2013
Иногда, необходимо посчитать оставшееся время до конца какого либо события, будь то даже конец распродажи. В PHP есть замечательная функция strftime(), но она сильно зависит от платформы и у меня выдавала немного "сдвинутое" время, поэтому я решил написать свою функцию.
Функция принимает в качестве параметра дату-время, до который будет отсчёт и возвращает количество дней, если осталось меньше одного дня, то вовращаются часы и минуты
/** * Возвращает оставшееся время * @param $expires_date * @return string */ function timeToLeft($timeExpires) { //Осталось времени в int $time = abs(strtotime($timeExpires) - time()); //Осталось дней $days = floor($time / (3600 * 24)); if ($days == 0) { //Осталось часов/минут $hours = floor(($time - ($days * 3600 * 24)) / 3600); $minutes = floor(($time - ($days * 3600 * 24) - ($hours * 3600)) / 60); $timeStr = (($hours > 0) ? $hours.' часов' : '').$minutes.' минут'; } else { $timeStr = $days." ".Yii::t('app', 'day', array($days)); } return "До конца события: {$timeStr}"; }