[PHP]Przeliczanie seknud miniut i milisekund |
[PHP]Przeliczanie seknud miniut i milisekund |
22.02.2010, 09:55:37
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 22.02.2010 Ostrzeżenie: (0%) |
Witam, wiem że temat był poruszany kilku krotnie, ale jakoś nie potrafię napisać dobrze działającej funkcji
Na wejściu podaje ilość milisekund, a na wyjściu muszę uzyskać ile to minut : sekund : milisekund Przykład: Wprowadzamy: 84120 Otrzymujemy: 01:24:12 (1 *60 *1000) + (24*1000) +(12*10) = 84120 Dla ścisłości przypominam, że 1 ms = 0,001 s Wiem że sekundy na minuty przelicza się banalnie odpowiednim dzieleniem (%), ale tu mnie myli, że min i sek się liczy do 59, a milisekundy do 999. Dziękuje z góry za pomoc. |
|
|
22.02.2010, 10:00:58
Post
#2
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Spodziewasz się gotowca? Pokaż kod, to co masz.
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
22.02.2010, 10:11:12
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
No przecież to normalne działanie. Tyle, że zamiast sekund masz milisekundy, a więc dzielisz przez inna wartość i modulo Robisz sprawdzenia czy liczba większa niż 3.600.000 (godziny), to samo z 60.000 (minuty) i 1.000 (sekundy), za każdym razem interesując się częścią całkowitą oraz wyliczając modulo dla dalszych obliczeń. Kończysz gdy dochodzisz do dzielenia przez 1000 lub gdy reszta z dzielenia we wcześniejszych częściach wyjdzie 0.
Masz więc w Twoim przykładzie: 84120 / 3600000 = 0 i 84120 % 3600000 = 84120 -> 0 godzin 84120 / 60000 = 1 i 84120 % 60000 = 24120 -> 1 minuta 24120 / 1000 = 24 i 24120 % 1000 = 120 -> 24 sekundy i 120 milisekund -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
22.02.2010, 12:29:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 22.02.2010 Ostrzeżenie: (0%) |
Dziękuję za wyjaśnienie.
Ja kombinowałem jeszcze z czymś takim że z liczby 84120 brałem 3 ostatnie znaki 120 i wiedziałem że są do milisekundy, później brałem resztę znaków czyli 84 i przeliczałem z sekund na minuty, ale po drodze musiałem gdzieś się pomylić, bo źle przeliczało Coś takiego skleciłem, ale chyba trochę na około:
Jak zmusić aby np 1 minuta była wyświetlana jako 01? Ten post edytował Treker 22.02.2010, 12:29:26 |
|
|
22.02.2010, 13:12:04
Post
#5
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Coś na podobę:
Funkcja formatująca sprintf() zapewnia umieszczenie wiodących zer dla liczb mniejszych niż 10. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
16.12.2010, 20:06:08
Post
#6
|
|
Grupa: Zarejestrowani Postów: 183 Pomógł: 0 Dołączył: 18.05.2009 Ostrzeżenie: (0%) |
Zastanawia mnie jedno, jak sekundy przeliczyć na ms i wykonać coś z dokładnością do milisekundy
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 00:53 |