Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzenie aktualności daty
Forum PHP.pl > Forum > PHP
MateuszRyaN
Witam. Mam taki problem. Tworze moduł dodawania zadań do własnego CMS i napotkalem na pewien problem.

Przy dodawaniu jakiegoś zadania ładuje mi do bazy danych aktualną datę oraz termin wykonania zadania.

Na chwilę obecną zajmuje się "kolorowaniem" różnych sytuacji typu zadanie wykonane, zadanie niewtykonane, zadanie nadane ale nie odczytane jeszcze przez uzytkownika itp...
I mam problem przy stworzeniu warunku dla zadania przeterminowanego.

I tutaj pytanie: czy istnieje jakaś funkcja php która sprawdza aktualność daty??
Czyli np.

Data aktualna: 07.04.11

Termin wykonania był do 05.04.11

Jeżeli zadanie nie zostało wykonane do dnia dzisiejszego, to podkreślone jest np. na czerwono.
Mogłbym to zrobić na piechodze, na zasadzie odejmowania dni itp...ale podejzewam ze jest jakas prostrza funkcja ktora potrafi to obliczyć.

Pozdrawiam,
RyaN
wookieb
spójrz na strtotime oraz time oraz dowiedz się co to jest unix_timestamp http://en.wikipedia.org/wiki/Unix_time
MateuszRyaN
No ale czy da sie to w jakiś prosty sposób może ugryźć? Na pewno można to jakoś prosto rozwiązać. Starałem się szukać tych problemów w google ale nic nie znalazłem.
wookieb
A czy przejrzałeś linki które podałem? Przejrzyj. Jesteś programistą. Prędzej czy później będziesz musiał się z tym zapoznać.
MateuszRyaN
Tak oglądałem. Ale czy to chodzi o to że jedynym rozwiązaniem jest zamiana tych dat na sekundy i na nich operowaćquestionmark.gif
wookieb
Tak, ale nie na "sekundy" tylko na unix_timestamp (co jest liczbą sekund od 1970 roku)

http://pl2.php.net/manual/pl/datetime.diff.php -> Przykład #2 DateTime object comparison ale to działa w identyczny sposób
MateuszRyaN
Super smile.gif) Wszystko działa ładnie pięknie. Już to naskrobałem. Dzięki wielkie tongue.gif



Jakby kiedys komus miało to pomóc to posyłam taki prosty przykładzik. Można sprawdzić u siebie jak to działa.

  1. <?php
  2.  
  3. $aktualna_data = date("d-m-Y");
  4. $data_explode = explode ( '-', $aktualna_data );
  5. $timestamp = mktime ( 0, 0, 0, $data_explode[1], $data_explode[0], $data_explode[2] );
  6. echo $timestamp. ' - Aktualna data - '.$aktualna_data.'<br />';
  7.  
  8. $data_nadana = '07-02-2011'; // tutaj jakas data np. z formularza.
  9. $data_explode2 = explode ( '-', $data_nadana );
  10. $timestamp2 = mktime ( 0, 0, 0, $data_explode2[1], $data_explode2[0], $data_explode2[2] );
  11. echo $timestamp2. ' - Termin na zadanie - '.$data_nadana.'<br />';
  12.  
  13. if ($timestamp > $timestamp2) { echo 'Zadanie jest przeterminowane';}
  14. if ($timestamp < $timestamp2) { echo 'Wszystko OK';}
  15. if ($timestamp == $timestamp2) { echo 'Masz ostatni dzień na wykonanie zadania';}
  16.  
  17. ?>
Bags_Bunny
Z Twojego kodu wnioskuję, iż nie zapoznałeś się z funkcją strtotime.
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.