Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] jak zrobić z sekund na min > godz. > dni itd.
lopik
post 18.10.2006, 23:25:15
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
w3c & c++
Go to the top of the page
+Quote Post
Amorph
post 19.10.2006, 07:07:13
Post #2





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nexis
post 19.10.2006, 09:56:19
Post #3





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
NetJaro
post 19.10.2006, 10:56:39
Post #4





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


smile.gif

Zmiana sekund na większe jednostki by hwao ;-)
Go to the top of the page
+Quote Post
lopik
post 19.10.2006, 14:33:11
Post #5





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
w3c & c++
Go to the top of the page
+Quote Post
dtb
post 19.10.2006, 16:41:27
Post #6





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował dtb 19.10.2006, 16:48:59


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:27