Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]CZAS I DATA W PHP, Odpowiedzi na pytanie dotyczące manipulacji czasem w PHP
neo1986kk
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





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:
  1. function licz ($sekundy) {
  2. $temp[] = $sekundy;
  3. $dzielniki = array(604800, 86400,3600, 60);
  4. for($i=0; $i<4; $i++ ) {
  5. $temp[] = $temp[$i]%$dzielniki[$i];
  6. $temp[$i] = floor($temp[$i]/$dzielniki[$i] );
  7. }
  8. return $temp;
  9. }

Czy coś w ten deseń...

Ten post edytował thek 10.09.2009, 20:52:59
Go to the top of the page
+Quote Post

Posty w temacie
- neo1986kk   [PHP]CZAS I DATA W PHP   10.09.2009, 18:03:52
- - Wicepsik   date, mktime - Wszystko czego Ci potrzeba   10.09.2009, 18:05:53
- - neo1986kk   acha, ja cały czas kombinuje z strtotime, ale odej...   10.09.2009, 18:10:26
- - wookieb   No skoro coś źle się dzieje to może pokażesz kod? ...   10.09.2009, 18:14:39
- - neo1986kk   na początek wpisuje wszystko ręcznie także moj kod...   10.09.2009, 18:20:02
- - wookieb   No i masz rożnicę sekund pomiędzy tymi datami. Czy...   10.09.2009, 18:29:20
- - neo1986kk   No właśnie róznica w sekundach, a ja chce zeby kto...   10.09.2009, 18:39:11
- - wookieb   Dzielić cię w szkole nie nauczono? Skoro minuta to...   10.09.2009, 18:42:52
- - neo1986kk   nie o to chodzi... ok mam 65 sekund jak to zapisać...   10.09.2009, 18:47:16
- - wookieb   Masakra... [PHP] pobierz, plaintext $godziny = flo...   10.09.2009, 18:55:33
|- - kefirek   Cytat(wookieb @ 10.09.2009, 19:55:33 ...   10.09.2009, 19:06:25
- - neo1986kk   dzieki, juz rozumiem o co chodzi, teraz mysle ze d...   10.09.2009, 19:01:34
- - thek   A po co kombinować? Strtotime zwraca Ci timestamp,...   10.09.2009, 19:05:20
- - wookieb   Ale jemu chodzi o czas podróży. Czyli sekundy prze...   10.09.2009, 19:07:06
- - neo1986kk   Ja rozumiem, sie denerwujecie jak patrzycie na tak...   10.09.2009, 19:25:16
- - thek   Autorowi, jeśli dobrze czytałem posta, chodzi o ob...   10.09.2009, 19:38:29
- - CyberDuck_   Panowie bez nerw Czlowiek przyszedl tu po pomoc i...   11.09.2009, 10:16:28
- - thek   Może i przesadziłem nieco, ale oprócz funkcji dałe...   11.09.2009, 13:49:40
- - neo1986kk   Mi to bardzo pomogło. Problem leżał w tym, że ja c...   11.09.2009, 22:56:32
- - CyberDuck_   Wlacz automatyczne odswierzanie co okreslony czas....   12.09.2009, 02:40:15


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 11:58