Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форматный вывод РАЗНИЦЫ времени
 
 автор: ddhvvn   (02.01.2007 в 13:54)   письмо автору
 
 

Допустим есть значение разницы 2 дат в UTC формате

<?php
  $rasniza 
43720;
?>

Как мне его вывести в формате "X дней X часов X минут X секунд"
Т.к. $rasniza может быть и 10 и 10000 нужно, если дней содержится 0, то "0 дней" вообще не выводить.
Весь день бьюсь - чет не получается. Пробовал и sprintf и strftime - получается фигня какая-то.

Подскажите, кто может, Please.

   
 
 автор: ddhvvn   (02.01.2007 в 14:53)   письмо автору
 
   для: ddhvvn   (02.01.2007 в 13:54)
 

Жду ответа

   
 
 автор: cheops   (02.01.2007 в 15:02)   письмо автору
 
   для: ddhvvn   (02.01.2007 в 13:54)
 

$rasniza в секундах?

   
 
 автор: ddhvvn   (02.01.2007 в 15:03)   письмо автору
 
   для: cheops   (02.01.2007 в 15:02)
 

Да!

   
 
 автор: Trianon   (02.01.2007 в 15:20)   письмо автору
 
   для: ddhvvn   (02.01.2007 в 15:03)
 


<?php 
  $razniza 
43720$res "";
  
$unit $razniza 60$razniza = ($razniza-$unit)/60
  if(
$unit$res "$unit секунд $res";
  
$unit $razniza 60$razniza = ($razniza-$unit)/60
  if(
$unit$res "$unit минут $res";
  
$unit $razniza 24$razniza = ($razniza-$unit)/24
  if(
$unit$res "$unit часов $res";
  
$unit $razniza 365$razniza = ($razniza-$unit)/365
  if(
$unit$res "$unit дней $res";
  
$unit $razniza;
  if(
$unit$res "$unit лет $res";
  echo 
$res;
?> 

   
 
 автор: cheops   (02.01.2007 в 15:20)   письмо автору
 
   для: ddhvvn   (02.01.2007 в 13:54)
 

Можно поступить следующим образом
<?php
  
function format_second($second)
  {
    
$day floor($second/86400);
    
$second -= $day*86400;
    
$hour floor($second/3600);
    
$second -= $hour*3600;
    
$minute floor($second/60);
    
$second -= $minute*60;
    echo 
"$day дней $hour часов $minute минут $second секунд";
  }
  
format_second(43720);
?>

   
 
 автор: ddhvvn   (02.01.2007 в 16:18)   письмо автору
 
   для: cheops   (02.01.2007 в 15:20)
 

Алгоритм понятен. Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования