Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zamiana sekund na minuty.
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć, chciałbym się zapytać jaka funkcja z manuala zamieni mi np.: 120sekund na 2:00,000 lub np.: 60sekund na 1:00,000 i przykładowo 1sekunda: 0:01,000.

Czym takie coś zrobić ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


znakiem dzielenia "/"
ewentualnie date i mktime

Ten post edytował peter13135 30.08.2011, 10:45:56


--------------------
:)
Go to the top of the page
+Quote Post
Giluś
post
Post #3





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


dobrze ale jak dam:
60/60 = 1, a ja chce żeby było 1:00,000 i ewentualnie 130/60 = 2,166666666666667 to żeby mi zamieniło na: 2:16,667 ( bo przybliżenie )

Ten post edytował Giluś 30.08.2011, 10:54:15
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




number_format + str_pad.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Giluś
post
Post #5





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Po dłuższym zastanowieniu nie wiem jak to zrobić...
  1. $liczba = 1919.919;
  2. $sss = number_format($liczba, 2, ',', ':');
  3. echo "".$sss."";

Wyświetla się dobrze: 1:919,92
Ale jak chce swój czas:
  1. $liczba1 = 130; // Ilość sekund
  2. $liczba2 = 60;
  3. $wynik = $liczba1 / $liczba2; // Wychodzi 2.16666666667.

I jak teraz wstawię $wynik zamiast $liczba to wychodzi czas: 2,17 a powinno być 2:16:667 (mm:ss:ms).

Macie jakieś pomysły ?

Go to the top of the page
+Quote Post
sadistic_son
post
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


A jesteś pewien, że 130 sekund to 2 minuty i 17 (czy tam 16) sekund? Kolego - nie możesz traktować sekund jako liczb dziesiętnych bo minuta to nie 100 sekund. Musisz zastosować dzielenie z resztą i to co zostanie, ta reszta to właśnie sekundy. Czyli 130 sekund to 2 minuty i 10 sekund. Te 10 sekund to wynik dzielenia z resztą (operator %).


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Giluś
post
Post #7





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


No własnie również się zastanawiałem czemu mi wychodzi 2minuty i 17sekund wink.gif
Troszkę zmodyfikowałem kod:

  1. $sekundy = 130;
  2. $minuty = floor ($sekundy / 60);
  3. $sekundys = $sekundy % 60;
  4. echo "$sekundy sekund to : $minuty:$sekundys";

I wychodzi teraz: 130 sekund to : 2:10, czyli mniej więcej poprawnie do zamierzonego mojego celu, teraz tylko setne sekundy, jak je obliczyć mając np.: 130,233223sekund ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Przy 130 sekundach ciężko o części setne sekundy. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Giluś
post
Post #9





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Ale poczytaj troszkę bardziej wink.gif
130 - Wyliczę tylko Minutę i Sekundę (nawet i przy 999), ale jak dodam 130.343 to teraz już obliczę zrobiłem tak:
  1. $sekundyp = explode(".", $sekundy);
  2. echo "".$sekundyp[1]."";

I teraz wyświetlają mi się cyfry po . (kropce) i teraz moje pytanie bo nie wiem za bardzo czy to już jest wynik w ms czy trzeba podzielić przez tysiąc
1sekunda = 0.001
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Skoro po kropce pokazujesz w ms to chyba nic się nie zmienia, czyż nie?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Giluś
post
Post #11





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


No dobrze, ale mam pytanie jeszcze takie:
Jak zaokrąglić liczbę do większej lub mniejszej, liczbę 103.16666667, po kropce oddzielam:
  1. $sekundyp = explode(".", $sekundy);

i wyświetla mi się: 16666667 przez kod:
  1. $sekundyp[1]

I teraz moje pytanie jak zaokrąglić taką liczbę: 16666667 do większej lub mniejszej, stosowałem: round i floor ale to tylko działa jak jest np.: 103.3 to zaokrągli do 103.0.

Wiec czym się posłużyć ?
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




round - zobacz, że ta funkcja ma drugi parametr.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Aktualny czas: 20.08.2025 - 23:03