Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana sekund, na wieksze jednostki
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
hwao
Taka pisana na szybko, bo na ircu poproszono, moze sie komus przyda:
  1. <?php
  2.  
  3. /**
  4.  * secondToSting()
  5.  * 
  6.  * Funkcja zamienia czas w sekundach, na wieksze jednostki
  7.  *
  8.  * @author Paweł `hwao` Halicki
  9.  * @param integer $iSeconds
  10.  * @return string
  11.  */
  12. function secondToString( $iSeconds ) {
  13. $aUnits = array(
  14. 60*60*24*356 => 'y', // lata
  15. 60*60*24*30 => 'm', // miesiace
  16. 60*60*24 => 'd',  // dni
  17. 60*60 => 'h', // godziny
  18. 60 => 'i', // minuty
  19. 1  => 's', // sekundy
  20. );
  21. // Jeżeli ułożyłeś tablice w kolejności malejącej
  22. // Możesz usunać linijke po niżej :)
  23. krsort( $aUnits );
  24.  
  25. $sString = '';
  26. foreach( $aUnits As $iTime => $sTime ) {
  27. $iDiv = $iSeconds/$iTime;
  28. if( $iDiv >= 1 ) {
  29. $x = floor( $iDiv );
  30. $sString .= $x.''.$sTime.' ';
  31. $iSeconds-= $x*$iTime;
  32. }
  33. }
  34. return $sString;
  35. }
  36.  
  37. echo secondToString( 123 );
  38.  
  39. ?>

Ps wiem ze miechy, sa ruchome, dlatego najlepiej stosowac z przyblizeniem do dni
Spirit86
po co niepotrzebnie obciążać serwer - zamiast 60*60 można wpisać 360, zamiast 60*60*24 86400 itd. itd. (za każdym wykoniem skryptu serwer musi wykonać jakieś obliczenia, po co? Niby są to proste obliczenia, ale jak się ich zbierze 100 w skrypcie, zostaną wykonane dla 100 osób odwiedzających i tak przez cały dzień, to bez sensu tongue.gif
hwao
Jak ktos chce, to sobie tak wpisze, ja dalem tak zeby bylo widac skad te liczby - podobnie jak komus nie potrzeba to usunie te ponad dniem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.