Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] lub [PHP]Wyliczenie czasu
Forum PHP.pl > Forum > Przedszkole
ZaXaZ
Czy istnieje jakaś funkcja która wyliczy mi czas taki jaki bym chciał (od 0)?
np podam parametr 'h' jako drugi 3600 (sec)
wyliczy ze to 1h. lub jak 'd' ile to dni itd itp.

ps. nie chce dzielic.
Pyton_000
PS. Nie masz wyjścia
ZaXaZ
Pomoże ktoś naprawić kod? wyswietla mi 44l kiedy czas wynosi maksymalnie miesiac.

  1. function calculateDate($seconds)
  2. {
  3. $s = 's';
  4. if ($seconds>=60) //Minut
  5. {
  6. $seconds = $seconds/60;
  7. $s = 'm';
  8. }
  9. if ($seconds>=60) //Godzin
  10. {
  11. $seconds = $seconds/60;
  12. $s = 'g';
  13. }
  14. if ($seconds>=24) //Dni
  15. {
  16. $seconds = $seconds/24;
  17. $s = 'd';
  18. }
  19. if ($seconds>=31) //Miesiecy
  20. {
  21. $seconds = $seconds/31;
  22. $s = 'ms';
  23. }
  24. if ($seconds>=12) //Lat
  25. {
  26. $seconds = $seconds/12;
  27. $s = 'l';
  28. }
  29. return round($seconds).$s;
  30. }
mmmmmmm
Zje..ny kod na maksa... BPNMSP
ZaXaZ
Cytat(mmmmmmm @ 31.07.2014, 12:47:16 ) *
Zje..ny kod na maksa... BPNMSP


dlatego pytalem sie o funkcje biggrin.gif.

pozniej pozamieniam na /= tylko niech pierw dziala tongue.gif
by_ikar
Pobaw się DateTime::diff, tam jest zwracany obiekt, który reprezentuje zarówno godziny, minuty, dni etc różnicy pomiędzy podanymi czasami (np now + czas podany przez ciebie).
ZaXaZ
Cytat(by_ikar @ 31.07.2014, 14:15:55 ) *
Pobaw się DateTime::diff, tam jest zwracany obiekt, który reprezentuje zarówno godziny, minuty, dni etc różnicy pomiędzy podanymi czasami (np now + czas podany przez ciebie).


do tego wymagane są daty, a ja mam do dyspozycji tylko liczbe sekund.
ZaXaZ
  1. $H = floor($seconds / 3600);
  2. $i = ($seconds / 60) % 60;
  3. $s = $seconds % 60;
  4. sprintf("%02d:%02d:%02d", $H, $i, $s);


umiał by ktoś dopisac $d $m $Y ?, jestem za słaby z matematyki, nawet z kalkulatorem.
Pyton_000
Napisz co Ty chcesz osiągnąć. Bo w tej chwili to co pokazałeś wyświetla peliczenie sekund na minuty, godziny (ale nie ile godzin i minut == ilość sekund)
ZaXaZ
Cytat(Pyton_000 @ 31.07.2014, 17:00:09 ) *
Napisz co Ty chcesz osiągnąć. Bo w tej chwili to co pokazałeś wyświetla peliczenie sekund na minuty, godziny (ale nie ile godzin i minut == ilość sekund)


chcialbym zeby jeszcze przeliczylo dni, miesiace, lata.
by_ikar
Cytat(ZaXaZ @ 31.07.2014, 14:53:45 ) *
do tego wymagane są daty, a ja mam do dyspozycji tylko liczbe sekund.


Nie, nie są, zobacz w jakim formacie http://php.net/manual/en/datetime.construct.php#example-2342 akceptuje przekazany mu czas. Przykład:

  1. <?php
  2.  
  3. $time = 946684800;
  4.  
  5.  
  6. $now = new DateTime;
  7. $ago = new DateTime('@'.$time);
  8.  
  9. $diff = $now->diff($ago);
  10.  
  11. var_dump($diff);


Otrzymasz w rezultacie obiekt DateInterval który będzie zawierać ilość lat, miesięcy, dni, godzin, minut i sekund.
trueblue
Tylko, że przekazujemy Unix timestamp, a mi się wydaje, że kolega Zaxaz chce obliczyć przedział czasu, a nie datę. Czyli np. dostać informację z liczby sekund, że ktoś jest na forum od 1 roku, 2 miesięcy, 3 dni, 4 godzin i 5 minut.
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.