Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]działanie na dacie
Kimas
post 4.11.2007, 23:38:25
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 18.07.2006

Ostrzeżenie: (0%)
-----


jak obliczyc np mając dzisiejsza date jaka była data powiedzmy 3 dni temu??
zeby nie bylo - szukałem odpowiedzi na moje pytanie ale coś mi to nie wyszło, znalazlem ftp://ftp.helion.pl/online/php5p/php5p-3.pdf tyle ze tam nie ma odpowiedzi na moje pytanie :/

Ten post edytował Kimas 5.11.2007, 10:24:15
Go to the top of the page
+Quote Post
kossa
post 4.11.2007, 23:54:47
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Napisz w jakim formacie masz datę.

Do operacji na datach bardzo dobra jest funkcja mktime" title="Zobacz w manualu PHP" target="_manual w połączeniu z date" title="Zobacz w manualu PHP" target="_manual i masa przykładów (takich jak Ty potrzebujesz) w manualu w komentarzach, zajrzyj, znajdziesz.

Łukasz


--------------------
Go to the top of the page
+Quote Post
Kimas
post 5.11.2007, 01:19:24
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 18.07.2006

Ostrzeżenie: (0%)
-----


data w formacie YYYY-MM-DD

heh chyba znalazlem rozwiazanie

  1. <?php
  2. $jutro  = mktime (0,0,0,date("m") ,date("d")+1,date("Y"));
  3. $ostatni_miesiac = mktime (0,0,0,date("m")-1,date("d"), date("Y"));
  4. $kolejny_rok  = mktime (0,0,0,date("m"), date("d"), date("Y")+1);
  5. ?>


jutro, znaczy dzis przetestuje winksmiley.jpg

dzieki bardzo winksmiley.jpg

Mam jeszcze jeden problem do rozwiązania - jak zaokraglic godzine do 5 min, np gdy mam godzine 01:29, to chcem ją zaokraglić do 01:25, chodzi o to że zaokraglona godzina nie moze być wieksza od tej która znajduje się w bazie, i minuty muszą byc podzielne przez 5, czyli ostatnia cyfra powinna wynosic 0 lub 5 na końcu smile.gif

Ten post edytował Kimas 5.11.2007, 01:30:16
Go to the top of the page
+Quote Post
Darti
post 5.11.2007, 01:52:25
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


mktime zwraca liczbe long z podanej daty, podziel ją na ilosc kawałków pięciominutowych (5 * 60) i wynik zaokraglij (round()) i zrob z tego date (to juz wiesz jak - date i mktime) i sprawdz czy jest w bazie, jak nie ma to zamiast zaokraglania zwyklego zaokraglij w dół (floor())


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
Cienki1980
post 5.11.2007, 08:28:19
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----



Proszę zapoznać się z Tematyką i zasadami panującymi na forum Przedszkole i dodać poprawny tag do tematu.

W innym przypadku wątek zostanie zamknięty.


--------------------
404
Go to the top of the page
+Quote Post
Kimas
post 5.11.2007, 11:17:57
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 18.07.2006

Ostrzeżenie: (0%)
-----


Cytat(Darti @ 5.11.2007, 01:52:25 ) *
mktime zwraca liczbe long z podanej daty, podziel ją na ilosc kawałków pięciominutowych (5 * 60) i wynik zaokraglij (round()) i zrob z tego date (to juz wiesz jak - date i mktime) i sprawdz czy jest w bazie, jak nie ma to zamiast zaokraglania zwyklego zaokraglij w dół (floor())


kurde jakos mi to nie wychodzi, moglbys cos wiecej podpowiedziec, narazie wyswietlilem aktualna godzine

  1. <?php
  2. $H = date('H');
  3. $m = date('i');
  4. $D = date('d');
  5. $M = date('m');
  6. $R = date('Y');
  7.  
  8. $teraz = mktime ($H,$m,0,$M,$D,$R);
  9. echo strftime ("%H:%M", $teraz);
  10. ?>
Go to the top of the page
+Quote Post
Darti
post 5.11.2007, 13:51:01
Post #7





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Cytat(Kimas @ 5.11.2007, 01:19:24 ) *
Mam jeszcze jeden problem do rozwiązania - jak zaokraglic godzine do 5 min, np gdy mam godzine 01:29, to chcem ją zaokraglić do 01:25, chodzi o to że zaokraglona godzina nie moze być wieksza od tej która znajduje się w bazie, i minuty muszą byc podzielne przez 5, czyli ostatnia cyfra powinna wynosic 0 lub 5 na końcu smile.gif

Cytat(Kimas @ 5.11.2007, 11:17:57 ) *
kurde jakos mi to nie wychodzi, moglbys cos wiecej podpowiedziec, narazie wyswietlilem aktualna godzine

  1. <?php
  2. $dana_godzina = "1:29";
  3. $dana_godzina = explode(':',$dana_godzina);
  4. $znacznik = mktime($dana_godzina[0],$dana_godzina[1]);
  5. $znacznik_zaokraglony = 300 * floor($znacznik / 300);
  6.  
  7. echo date('H:i',$znacznik_zaokraglony);
  8. ?>


Ten post edytował Darti 5.11.2007, 13:51:42


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 19:53