[php]Odejmowanie dwóch godzin |
[php]Odejmowanie dwóch godzin |
8.04.2008, 20:26:06
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 21.04.2005 Ostrzeżenie: (0%) |
Nie wiem jak poradzić sobie z problemem odejmowania dwóch godzin. Poniżej przykłady i wyniki jakie chciałbym uzyskać.
19.30 - 6.00 -> 13,5 16.45 - 8.00 -> 8,45 16.32 - 7.10 - > 9,22 |
|
|
8.04.2008, 20:55:42
Post
#2
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Pisane z palca, ale powinno działać.
edit Przed chwilą poniżej była wypowiedź podważająca działanie tego kodu Tak, to zadziała, ponieważ, jeśli $h1 < $h2, to obliczy godzinę dla dnia poprzedniego:
Ten post edytował batman 8.04.2008, 20:56:53 -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
30.04.2008, 14:23:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Potrzebuję sposobu podobnego do tego zaprezentowanego wyżej ale bez konieczności rozbijania godzin na minuty.
Tzn, że z bazy pobieram dwie godziny np: $a = '16:32'; $b = '07:10'; Chcę uniknąć używania explode() w wiadomych przyczyn. Macie jakiś pomysł? Bo do tej pory robiłem to tak:
Ale przy godzinach 07:45 16:15 wynik 8,7 a powinno być 8,5 godziny. Musiałbym wyciągnąć wartości setne i tą wartość odjąć od 100. Za dużo danych i to zbyt duże obciążenie. Ten post edytował Jarod 30.04.2008, 20:24:35 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 16:30:08
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) |
Wywal obie funkcje date (zostaw tylko strtotime) i podziel sobie wynik przez 3600.
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
30.04.2008, 17:07:05
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Wywal obie funkcje date (zostaw tylko strtotime) i podziel sobie wynik przez 3600. Działa dla godzin: 07:45 16:15 natomiast dla godzin: $a = '16:32'; $b = '07:10'; podaje wynik 9.36 co jest głupotą.. Powinno być 9,22. Potrzebuje sposobu, który zawsze dobrze obliczy.. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 17:50:02
Post
#6
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 5 Dołączył: 17.03.2005 Ostrzeżenie: (0%) |
|
|
|
30.04.2008, 18:01:08
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
naprosciej wedlug mnie
Sprawdzę. Wytłumacz dlaczego Kod -2 *3600 EDIT:. Co chciałeś osiągnąć tym kodem? Spróbuj odjąć od godziny 16:32 godzinę 7:10... Ma ktoś jakiś inny pomysł? Ten post edytował Jarod 30.04.2008, 18:22:23 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 18:48:52
Post
#8
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 5 Dołączył: 17.03.2005 Ostrzeżenie: (0%) |
|
|
|
30.04.2008, 18:54:33
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
wynik 10:22 Wiem jaki daje wynik bo sprawdzałem. Uważasz, że jest prawidłowy?:/ -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 19:12:24
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
-------------------- 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! |
|
|
30.04.2008, 19:16:39
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) |
Cytat Działa dla godzin: 07:45 16:15 natomiast dla godzin: $a = '16:32'; $b = '07:10'; podaje wynik 9.36 co jest głupotą.. Powinno być 9,22. Wzorowałem się na twoim drugim poście, w którym napisałeś: Cytat Ale przy godzinach 07:45 16:15 wynik - 8,7 a powinno być 8,5 godziny. Więc jeśli różnica wynosi "dziewięć i pół godziny" to skrypt wyświetli 9,5. Jeśli natomiast różnica wynosi "dziewięć i dwadzieścia dwa sześćdziesiąte godziny", to wyświetli: 9,36 Jeśli zamiast 9,5 chcesz mieć 9:30, to: Kod $godziny = floor( $roznica_w_sekundach / 3600 );
$minuty = ( $roznica_w_sekundach % 3600 ) / 60 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
30.04.2008, 19:25:10
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Jeśli zamiast 9,5 chcesz mieć 9:30, to: Kod $godziny = floor( $roznica_w_sekundach / 3600 ); $minuty = ( $roznica_w_sekundach % 3600 ) / 60 @Kicok: rozumiem, tylko, musiałbym rozbić godziny i minuty za pomocą explode() co nie jest mi na rękę ze względów wydajnościowych. Generalnie sprowadziłeś rozwiązanie do rozwiązania batmana. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 19:35:55
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
? -------------------- 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! |
|
|
30.04.2008, 19:49:25
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
@erix: przecież ten kod zwraca błędy wynik.. 10:22? Powinno być 9:22
-------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 20:05:42
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Dorzuć
na początku. ;] -------------------- 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! |
|
|
30.04.2008, 20:09:29
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Mam
Dlaczego UTC? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
30.04.2008, 20:21:16
Post
#17
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Szczerze mówiąc, sam nie mogę trochę zrozumieć, dlaczego...
Ale przy strefie UTC przelicza prawidłowo, przy innych już dodaje tą nadmiarową godzinę. Niby przesunięcie czasowe powinno być takie same w obu przypadkach... -------------------- 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! |
|
|
30.04.2008, 20:55:42
Post
#18
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 5 Dołączył: 17.03.2005 Ostrzeżenie: (0%) |
|
|
|
30.04.2008, 21:18:27
Post
#19
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Ok, zmienią się ustawienia czasu (zimowy/letni) i będzie trzeba kombinować. A podejrzewam, że i to może mieć wpływ...
-------------------- 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! |
|
|
1.05.2008, 08:51:39
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) |
Cytat @Kicok: rozumiem, tylko, musiałbym rozbić godziny i minuty za pomocą explode() co nie jest mi na rękę ze względów wydajnościowych. Generalnie sprowadziłeś rozwiązanie do rozwiązania batmana. Kiedy ja o jakimś explode wspominałem? strtotime" title="Zobacz w manualu PHP" target="_manual
A po drugie to skąd to przekonanie, że explode jest mało wydajne? Według tego testu jest o wiele wydajniejsze niż używanie strtotime" title="Zobacz w manualu PHP" target="_manual:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 13:53 |