PHP: function tl($tl){ $d=3600*24; $day=floor($tl/$d); $tl=$tl-($d*$day); $hour=floor($tl/3600); $tl=$tl-(3600*$hour); $minute=floor($tl/60); $tl=$tl-(60*$minute); $second=floor($tl); $dayt="".($day>0?"$day д. ":null).""; $hourt="".($hour>0?"$hour ч. ":null).""; $minutet="".($minute>0?"$minute м. ":null).""; $secondt="".($second>0?"$second с. ":null).""; if($day>0){ $minutet=NULL; $secondt=NULL; } if($hour>0 && $day==0){ $secondt=NULL; $dayt=NULL; } return "Осталось $dayt$hourt$minutet$secondt"; } /* Вывод оставшегося времени */ $x = time()+60*60; // 1 hour echo tl($x); должно выводиться 1 час, но там показывает 18661 дней 13 часов
Вычисляем прошедшее\оставшееся время от даты. PHP: <?php $date = '2020-02-14 12:10:22'; // '2021-02-04', '12:10:22'... $now = time(); $diff = $now - date_format(date_create($date), 'U'); $str = ($diff > 0) ? 'Прошло ' : 'Осталось '; $abs = abs($diff); $str_append = (floor($abs/86400) > 0) ? floor($abs/86400).' дней' : ''; $mod = bcmod( $abs, 86400); $str_append .= ($mod > 3600) ? ' '.floor($mod / 3600) .' часов' : ''; $mod2 = bcmod( $mod, 3600); $str_append .= ($mod2 > 60) ? ' '.floor($mod2 / 60).' минут' :''; $mod3 = bcmod( $mod2, 60); $str_append .= ($mod3 != 0) ? ' '.$mod3.' секунд' :''; echo $str.$str_append; ?>
>Беру значение из бд а там время в таком формате 1612375751 И как мне через твою функцию вычислить оставшееся время? Строки $date = '2020-02-14 12:10:22'; // '2021-02-04', '12:10:22'... и $diff = $now - date_format(date_create($date), 'U'); замените на $var = 1612375751; $diff = $now - $var;