Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sprawdzenie aktualności daty
MateuszRyaN
post 7.04.2011, 13:21:16
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


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
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
wookieb
post 7.04.2011, 13:30:22
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




spójrz na strtotime oraz time oraz dowiedz się co to jest unix_timestamp http://en.wikipedia.org/wiki/Unix_time


--------------------
Go to the top of the page
+Quote Post
MateuszRyaN
post 7.04.2011, 13:45:56
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


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.
Go to the top of the page
+Quote Post
wookieb
post 7.04.2011, 13:47:36
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A czy przejrzałeś linki które podałem? Przejrzyj. Jesteś programistą. Prędzej czy później będziesz musiał się z tym zapoznać.


--------------------
Go to the top of the page
+Quote Post
MateuszRyaN
post 7.04.2011, 13:59:56
Post #5





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


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
Go to the top of the page
+Quote Post
wookieb
post 7.04.2011, 14:03:55
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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


--------------------
Go to the top of the page
+Quote Post
MateuszRyaN
post 7.04.2011, 14:28:06
Post #7





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


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. ?>
Go to the top of the page
+Quote Post
Bags_Bunny
post 7.04.2011, 22:33:52
Post #8





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Z Twojego kodu wnioskuję, iż nie zapoznałeś się z funkcją strtotime.


--------------------
rm -rf /*
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: 19.07.2025 - 10:19