не выводится время

Пэлт

PHP:
  1. function tl($tl){
  2.     $d=3600*24;
  3.     $day=floor($tl/$d);
  4.     $tl=$tl($d*$day);
  5.  
  6.     $hour=floor($tl/3600);
  7.     $tl=$tl(3600*$hour);
  8.  
  9.     $minute=floor($tl/60);
  10.     $tl=$tl(60*$minute);
  11.  
  12.     $second=floor($tl);
  13.  
  14.     $dayt=«».($day>0?«$day д. «:null).«»;
  15.     $hourt=«».($hour>0?«$hour ч. «:null).«»;
  16.     $minutet=«».($minute>0?«$minute м. «:null).«»;
  17.     $secondt=«».($second>0?«$second с. «:null).«»;
  18.    
  19.     if($day>0){
  20.         $minutet=NULL;
  21.         $secondt=NULL;
  22.     }
  23.     if($hour>0 && $day==0){
  24.         $secondt=NULL;
  25.         $dayt=NULL;
  26.     }
  27.    
  28.     return «Осталось $dayt$hourt$minutet$secondt«;
  29. } /* Вывод оставшегося времени */
  30.  
  31. $x = time()+60*60; // 1 hour
  32. echo tl($x);

должно выводиться 1 час, но там показывает 18661 дней 13 часов

 

Drunkenmunky

Вычисляем прошедшееоставшееся время от даты.

PHP:
  1. <?php
  2. $date = ‘2020-02-14 12:10:22’; // ‘2021-02-04’, ’12:10:22’…
  3.  
  4. $now = time();
  5.  
  6. $diff = $now date_format(date_create($date), ‘U’);
  7.  
  8. $str = ($diff > 0) ? ‘Прошло ‘ : ‘Осталось ‘;
  9.  
  10. $abs = abs($diff);
  11.  
  12. $str_append = (floor($abs/86400) > 0) ?
  13.             floor($abs/86400).‘ дней’ : »;
  14.  
  15. $mod = bcmod( $abs,  86400);
  16. $str_append .= ($mod > 3600) ?
  17.             ‘ ‘.floor($mod / 3600) .‘ часов’ : »;
  18.  
  19. $mod2 = bcmod( $mod, 3600);
  20. $str_append .= ($mod2 > 60) ?
  21.             ‘ ‘.floor($mod2 / 60).‘ минут’ :»;
  22.  
  23. $mod3 = bcmod( $mod2, 60);
  24. $str_append .= ($mod3 != 0) ?
  25.             ‘ ‘.$mod3.‘ секунд’ :»;
  26.  
  27. echo $str.$str_append;
  28. ?>
 

Пэлт

 

Drunkenmunky

>Беру значение из бд а там время в таком формате 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;

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *