Functie Ani, Zile, Ore dupa numar secunde

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Pigmy
Mesaje:11

Functie Ani, Zile, Ore dupa numar secunde

Am functia:

Cod: Selectaţi tot

function HMS($time)
{
  if($time >= 31556926){
    $years = floor($time/31556926);
    $time = ($time%31556926);
  }

  if($time >= 86400){
    $days = floor($time/86400);
    $time = ($time%86400);
  }

  if($time >= 3600){
    $hours = floor($time/3600);
    $time = ($time%3600);
  }

  $HMSTIMP = $years . ':' . $days . ':' . $hours;

  return $HMSTIMP;
} 
Vreau sa returneze altcumva, dar nu am IDEE...

Adica return $HMSTIMP; sa returneze in felul urmator:

Cod: Selectaţi tot

if($time >= 31556926){
  $HMSTIMP = $years . ':' . $days . ':' . $hours;
}

if($time >= 86400){
  $HMSTIMP = $days . ':' . $hours;
}

if($time >= 3600){
  $HMSTIMP = $hours;
} 
De ce vreau asta? Pentru ca vreau sa bag si text:

Exemplu: 1 an, 5 zile si 1 ora

Multumesc de ajutor !

MarPlo Mesaje:4343
Incearca exemplu acesta:

Cod: Selectaţi tot

<?php
function HMS($time) {
  $years = '';
  $days = '';
  $hours = '';
  if($time >= 31556926){
    $years = floor($time/31556926);
    $years = $years==1 ? $years.' an ' : $years.' ani ';
    $time = ($time%31556926);
  }
  if($time >= 86400) {
    $days = floor($time/86400). ' zile ';
    $time = ($time%86400);
  }
  if($time >= 3600) {
    $hours = floor($time/3600). ' ore';
    $time = ($time%3600);
  }
  return $years. $days. $hours;
}

echo HMS(31987689);               // 1 an 4 zile 23 ore
echo '<br>'. HMS(81987689);       // 2 ani 218 zile 10 ore
?>

Pigmy Mesaje:11
Uff...usor a fost. Adica, daca stiam de "$days = floor($time/86400). ' zile ';" ce am ingrosat eu, mergea mai usor.

Subiecte similare