![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, proszę pomoc w napisaniu kodu PHP, który miałby za zadanie dodawanie godzin.
To znaczy: 1) wpisuję czas początkowy w polu data i godzina... np 10-09-2009 20:00 2) zaznaczam że jade pociągiem i tu pierwszy problem bo ustalam ze pociagiem jade 80/h, samochodem 100/h, a rowerem 12/h. 3)podaje ilosc km 4)i teraz po kliknieciu na ok, chcialbym uzyskac odpowiedz: jazda rozpocznie się o godzinie 20:00 dnia 10-09-2009, bedziesz jechał gg:mm czasu, podróż zakończy się dnia dd:mm:rrrr o godzinie gg:mm, jedziesz pociągiem. oczywiście rzeczy typu "jedziesz pociągiem" wiem jak wpisać w skrypt, skupić się należy na tym jak obliczyć ile będę jechał i kiedy zakończy się moja podróż. Proszę o pomoc i z góry dziękuę za podpowiedzi. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
date, mktime - Wszystko czego Ci potrzeba (IMG:style_emoticons/default/winksmiley.jpg)
Ten post edytował Wicepsik 10.09.2009, 18:06:29 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
acha, ja cały czas kombinuje z strtotime, ale odejmując czas dojazdu od czasu odjazdu wiadomo co sie dzieje... skrypt powraca do roku 1970 kiedy to dla niego jest początek, że tak powiem świata...
ale do konwersji pewnie będzie mi potrzebne zamienianie sekund na dni itd... a tu niestety jest problem bo do szkoly często nie było po drodze:P Pozdrawiam A jeszcze takie pytanie bonusowe czy moge na jednej stronie wyświetlić klika takich podrózy? Ten post edytował neo1986kk 10.09.2009, 18:11:51 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No skoro coś źle się dzieje to może pokażesz kod? Tylko nie cały swój system, lecz wycinek. Oczywiście wcześniej zdebuguj dane wyjściowe (wyświetl, pokaż nam)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie róznica w sekundach, a ja chce zeby ktos kto bedzie to czytal nie musial sobhie liczyc ze 23582358 sekund to 6:43:28 tylko mial róznice wyswietloną od razu w formie gg:mm:ss
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Dzielić cię w szkole nie nauczono? Skoro minuta to 60 sekund a godzina to 60 minut. Stary ( z nicku prawdopodobnie masz 23 lata)... matematyka z podstawówki.
Cytat a tu niestety jest problem bo do szkoly często nie było po drodze:P To wracaj do podstawówki. Taki argument do nas nie przemawia. Ten post edytował wookieb 10.09.2009, 18:43:57 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie o to chodzi...
ok mam 65 sekund jak to zapisać w postaci 00:01:05? 65/60=1 r5?? |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzieki, juz rozumiem o co chodzi, teraz mysle ze dam rade, a jak nie to siegne po pomoc, ale najpierw uzupelnie wiedze:)
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A po co kombinować? Strtotime zwraca Ci timestamp, czyli liczbę sekund od 1 stycznia 1970. Policz tylko ile sekund trwa podróż na X kilometrów z prędkością Y. Teraz dodaj tę liczbę do czasu startu wyświetl sformatowaną do odpowiedniej postaci.
EDIT: Wookieb mnie uprzedził bo temat miałem otwarty w dalekiej zakładce (IMG:style_emoticons/default/winksmiley.jpg) A tak do autora to liczy komp, a nie Ty więc to żadne usprawiedliwienie. Ty tylko dajesz wzór. Jeśli nawet tego nie potrafisz to nie bierz się za nic trudniejszego. Informatyka to w 50% pomysł na algorytm, a w pozostałych 50% matma w czystej postaci. Patrząc zaś na posty to brak Ci pomysłów bo idziesz po nie na forum. Zaś skoro trudność Ci sprawia nawet dzielenie przez 60 i jej potęgi to znaczy, że z matmą też u Ciebie krucho. Ten post edytował thek 10.09.2009, 19:11:43 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Masakra...
i jeszcze podpowiedź http://pl2.php.net/str_pad . Nie znasz podstaw operatorów w programowaniu. Uzupełnij wiedzę. A nie powinno byc tak ? |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ale jemu chodzi o czas podróży. Czyli sekundy przeliczyć na godziny itd. I nie podawaj tutaj rozwiązania z date bo to działa tylko do 24h a to chyba trochę za mało.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja rozumiem, sie denerwujecie jak patrzycie na takie pytania, ale ja dopiero zaczynam pisanie jakichkolwiek skryptów dlatego napisałem na forum o nazwie przedszkole, matematyke umiem ale poprostu nie zdaje sobie sprawy czasami jak i gdzie ją wykorzystac, dlatego prosze o wyrozumialosc i jestem wdzieczny za wszelka pomoc.
|
|
|
![]()
Post
#16
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Autorowi, jeśli dobrze czytałem posta, chodzi o obie rzeczy, bo pisze: ruszyłeś gdy była X i pojedziesz Y czasu, a będziesz na miejscu o czasie Z. Czyli użycie wszystkiego co tu opisaliśmy będzie mu potrzebne. Ewentualnie bym zdefiniował sobie tablicę kilku liczb by szybko robić przeliczenia na tygodnie(choć te nie muszą wystąpić), dni, godziny, minuty i sekundy. Dzielimy liczbę przez kolejne z nich od największej. Jeśli większe lub równe 1 to wyświetlamy część całkowitą, a resztę z dzielenia przepychamy do niższej w skali liczby i powtarzamy. Co da nam ostatecznie czas podróży. Czas dotarcia to już prościzna o jakiej pisaliśmy z wookieb. Dodanie sekund do strtotime i wynik potraktować sformatowanym date. Rzucę przykład bo zawsze to lepiej widać.
Tablica: 604800, 86400, 3600, 60 3957884 sekund podróży to: 3957884/604800 = 6 tygodni i 329084 sekund reszty 329084/86400 = 3 dni i 69884 sekund reszty 69884/3600 = 19 godzin i 1484 sekund reszty 1484/60 = 24 minuty i 44 sekundy reszty Z tego się prostą funkcję da napisać w stylu:
Czy coś w ten deseń... Ten post edytował thek 10.09.2009, 20:52:59 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Panowie bez nerw (IMG:style_emoticons/default/smile.gif) Czlowiek przyszedl tu po pomoc i chce
sie czegos nauczyc. Najlepiej jesli da tu juz swojego gotowca, a my na spokojnie/konstruktywnie to rozpiszemy co mogl inaczej i co mozna zmienic. No i jesli juz piszecie cokolwiek to ciut wyzej na jego poziomie bo moj poprzednik chyba troszke przesadzil z ta funkcja (IMG:style_emoticons/default/smile.gif) On nie rozumie date() i mktime(), a ten mu juz zasadzil funkcje i return (IMG:style_emoticons/default/blinksmiley.gif) |
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Może i przesadziłem nieco, ale oprócz funkcji dałem przykład jak działa ona krokowo, więc myślę, że zrozumiała jest ona dzięki temu nawet dla żółtodziobów (IMG:style_emoticons/default/winksmiley.jpg)
A jeśli komuś innemu się przyda to też będzie fajnie, choćby do rozszerzenia możliwości helpera operacji na datach we frameworku. Rzuciłem to też by widział jak się matematykę stosuje w praktyce. Funkcyjka jest prosta, więc można łatwo prześledzić co i jak. Dzięki temu choć nieco podstawy pisania funkcji pozna. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mi to bardzo pomogło. Problem leżał w tym, że ja chciałem zwrócić całą godzinę w formacie gg:mm i nie przyszło mi dogłowy żeby godziny zapisać do x a minuty do y i wyświetlić to jak x:y. Beznadziejnie przez 2 dni szukałem funkcji, która mi to wykona, a co się okazało temat jest banalnie prosty. Teraz mam inny problem nie do przeskoczenia. Bo moj program nie uwzględnia tego, że mój środek lokomocji może się np. zepsuć i wtedy nie dojade o określonym czasie. Domyślam się, że do tego potrzebowałbym jakiś licznik, który na bierząco będzie dodawał ilość kilometrów dzieląc to przez czas, ale niestety nie mam takich urządzeń i w tej sytuacji leżę. Chyba, że ktoś z was ma pomysł jak to obejść ale jakoś sensownie, a nie tak żeby wpisywać co kilometr, że rzeczywiście go przejechałem:P Pozdrawiam
P.S. a wiecie może co zrobić, żeby po odświeżeniu nie wyskakiwało okienko informujące o przeładowaniu strony? Troche denerwujące... Ten post edytował neo1986kk 11.09.2009, 22:58:42 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wlacz automatyczne odswierzanie co okreslony czas.
Zeby to zrobic bardzo elegancko musialbys zrobic sobie ramke i w niej dokonywac wszystkich obliczen, a wynik wyswietlac na stronie bez jej odswierzania. Przed tym wszystkim musialbys zapisac soobie do sesji dane, ktore Ci sa potrzebne i za kazdym odswierzeniem je aktualizuj. Przed samym formularzem sprawdzaj czy dane wynikowe sa wypelnione i jesli tak to chowasz formularz, a jesli nie to formularz sie wyswietla. Do tego potrzebne Ci bedzie : session_start(); no i same zmienne sesji ... :
Z tymi ramkami to moze jeszcze poczekaj (IMG:style_emoticons/default/smile.gif) , ale ja cos takiego juz robilem i calkiem przyjemnie to wychodzi. Na stronie mozna obserwowac zmieniajace sie dane, bez jej odswierzania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:42 |