Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]działanie na dacie
Forum PHP.pl > Forum > Przedszkole
Kimas
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 :/
kossa
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
Kimas
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
Darti
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())
Cienki1980

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.
Kimas
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. ?>
Darti
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.