![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zanim napisalem post przeszukalem forum ale nie udalo mi sie nic znalesc (przepraszam jesli cos przeoczylem) Pisze maly skrypt ktory co tydzien zbiera czas pracownikow - kazdy wypelnia deklaracje. Wiec co tydzien dostaje 7 wartosci hh:mm np w poniedzialek czas pracy 08:32 (8 godzin i 32 minuty) Jakiej funkcji uzyc zeby policzyc calkowity czas pracy w danym okresie? chcialbym dodac czas1 + czas2 + czas3 itd.... czy musze wszystko konwetowac do sekund dokonywac obliczen a potem ponownie przeliczac Jak sie za to zabrac? Pozdrawiam I dziekuje za poswiecony mi czas. Ten post edytował foxmark 15.11.2011, 12:55:21 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zapytam się Ciebie: a gdybyś musiał ręcznie to zrobić, to jak byś to załatwił? Tak, żeby było szybko i optymalnie.
Bo ja bym dla każdego pracownika sumował w ten sposób, że robię sumę godzin i sumę minut. A potem - wiadomo, przekształcenie np. 453 minut na format "ileś godzin i minut" - ale to już mam nadzieję dla Ciebie nie jest problemem. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Recznie ... hmmmm chyba tak:
np. 1:30 + 2:00 daja 3:30 min pracy 1:30 rozbijam na 1*60*60 + 30*60 + 2*60*60 = 3600 + 1800 + 7200 = 12600/60/60 = 3.5 Logicznie? ale jak teraz 3.5 zamienic na 3:30 min jesli pytam o czas w formacie hh:mm to musze podac wynik w formacie hh:mm a nie hh:dziesietne czesci godziny. Ten post edytował foxmark 15.11.2011, 13:18:13 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Możesz sumować już po stronie bazy danych wtedy to jest kwestia jednego zapytania i od razu masz gotowy wynik. Możesz pobrać dane z bazy wykonać jakąś funkcję zwrotną na tablicy i przerobić czas z hh:mm na hh.mm i rzutować do float a następnie zsumować całą tablicę. Możesz pobawić się obiektem datetime. Ogólnie możliwości dość sporo. Najbardziej poprawnym politycznie i zarazem najłatwiejszym będzie sumowanie po stronie bazy
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
moim zdaniem jeżeli chcemy wykorzystać php to najprościej jak kolega wyżej napisał
suma minut ( jeżeli więcej niż 60 to /60 ) dodajemy do godzin i tutaj zamyka się sprawa. A jeżeli masz dane w postaci od której do której pracował pracownik to tutaj trzeba się pobawić z funkcją strtotime() wtedy jestes w stanie wyliczyć ile h pracował i korzystając z tego co napisałem wyżej można sobie to policzyć Ten post edytował Micchaleq 15.11.2011, 14:48:14 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Witam Ponownie,
Mam funkcje:
zmieniam czas postaci np: 02:55 na:
pod koniec podliczam sume zwyczajnie:
ale otrzymuje wynik typu: 4.6666666666667 jak mam to zamienic ponownie na postac HH:mm ![]() Oczywiscie moge funkcje zmodyfikowac i obliczac sekundy uzyc: i niby sprawa rowiazana ale jesli mam wiecej niz 24h przepracowane co w normalnym tygodniu pracy jest raczej normalne normalne to dostaje 00:00 zamiast np 40:05 ![]() Pozdrawiam Ten post edytował foxmark 15.11.2011, 15:20:10 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Eh, czemu nie chcesz obliczyć tego w bazie danych?
Ten post edytował by_ikar 15.11.2011, 17:41:08 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Eh, czemu nie chcesz obliczyć tego w bazie danych? Zanim zapisze rekordy w DB zbieram je i trzymam w sesji w tym miejscu wyswietlam je i jesli uzytkownik sie zgadza i wszystko jest ok klika zapisz i wszystko ladowane jest do bazy danych. Dodam tylko ze znalazlem taki kod:
Zamienia ilosc minut na godziny i minuty. Szkoda tylko ze tyle lini zeby obliczyc banalna rzecz i ze nie moglem sam do tego dojsc - no ale praca wykonanan i pora do domu ![]() Pozdrawiam! |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 262 Pomógł: 39 Dołączył: 12.04.2004 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o coś takiego? Bo aż smutno mi się zrobiło jak tamten kod zobaczyłem ![]() Ten post edytował Bags_Bunny 15.11.2011, 20:59:34 -------------------- rm -rf /*
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 20.03.2004 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o coś takiego? Bo aż smutno mi się zrobiło jak tamten kod zobaczyłem ![]() Tak dziala super, wielkie dzieki za pomoc i poswiecony czas. Przepraszam jesli moje pytania wydaly sie banalne ale kazdy sie kiedys uczy ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:24 |