Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak zrobić z sekund na min > godz. > dni itd.
Forum PHP.pl > Forum > Przedszkole
lopik
Hmm, potrzebuję zrobić taki skrypt do zliczania uptime'a.

I coś mi się wydaje że to nie będzie takie proste ;/

Chcę z formularza wprowadzać dane, tzn. czas uptime obojętnie w jakim formacie, czy to w sekundach czy w minutach...

No i chciał bym żeby skrymp zawsze zwracał mi coś takiego:

"Uptime: 0 lat 10 dni 15 godz. 33 min 20 sek" (coś w tym stylu)
No i potem będe to zapisywał do bazy lub plików. (ale to juz nie problem)

Problme jest taki że nie wiem jak:
- zrobić taką funkcję że nam jak wpiszę w formularzu czas w sek np: 80sek żeby wynik był:
0 lat 0 dni godz. 1 min 20 sek
żeby powyżej 60sek robiły się minuty, powyżej 60min godziny itd.

I żeby za każdym razem gdy dodaje z formularza czas, żeby ciągle doliczał się do tego poprzedniego.

Ale zamięszałem winksmiley.jpg
Ale może ktoś coś doradzi jakiś sposób na coś takiego.
Z Góry Wielkie Dzięki.
Pozdrawiam.
Amorph
jaki masz problem? 1m==60sek,
  1. <?php
  2. $czas=80;
  3. $minuty=round($czas/60);
  4. $sekundy=$czas-$minuty*60;
  5. echo "$minuty minut i $sekundy sekund";
  6. ?>


Godziny i resztę analogicznie smile.gif
P
nexis
Zasada działania jest prosta. Robisz to na warunkach i reszty z dzielenia.

Największą wartością jest rok (365 x 24 x 60 x 60 = 31536000), więc:

  1. <?php
  2. $sek = 123456789123456789;  // podana przez ciebie ilosc sekund
  3. $year = floor($sek/31536000);
  4. $rest = $sek%31536000; // tutaj masz reszte sekund, ktore musisz przeliczyc kolejno na dni, godziny i sek
    undy
  5. ?>
NetJaro
smile.gif

Zmiana sekund na większe jednostki by hwao ;-)
lopik
NetJaro dokładnie o to mi chodzilo smile.gif
Dzięki! Dzięki exclamation.gif smile.gif

I Dzięki oczywiście autorowi tej funkcji smile.gif
hwao

Great exclamation.gif smile.gif

Pozdro.
dtb
ale komplikujecie sobie zycie: nie lepiej uzyc date" title="Zobacz w manualu php" target="_manual? po to chyba jest drugi argument
edit: trzeba tylko od roku odjac 1970.

  1. <?php
  2. list($lata, $dni, $godziny, $minuty, $sekundy) = explode(' ', date('Y z G i s', $czas_w_sekundach));
  3. $lata -= 1970;
  4. ?>
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.