Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] jak zrobić porównanie daty w dniach?
yasiu_kam
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.02.2007

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


Witam. Chcę zrobić porównanie dni tzn. wypożyczenie książki i czas do oddania (ok 30dni) ale nie wiem jak to zrobić bo wyświetla mi tylko rok (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) jeśli czas dojdzie do ok 30 dni to chciałbym jakiegoś IF dać który wyśle maila do danego użytkownika. Pozdrawiam
  1. <?php
  2. $pozostalo=$data-$data_wypozyczenia;
  3. echo "<h4><font color=red>Do oddania książki pozostalo $pozostalo dni</font></h4>";
  4. ?>


Ten post edytował yasiu_kam 14.05.2007, 16:32:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


ktos kiedys napisal...
  1. <?php
  2.  
  3. function date_diff($date1, $date2)
  4. {
  5. //$date1 today, or any other day
  6. //$date2 date to check against
  7.  
  8. $d1 = explode("-", $date1);
  9. $y1 = $d1[0];
  10. $m1 = $d1[1];
  11. $d1 = $d1[2];
  12.  
  13. $d2 = explode("-", $date2);
  14. $y2 = $d2[0];
  15. $m2 = $d2[1];
  16. $d2 = $d2[2];
  17.  
  18. $date1_set = mktime(0,0,0, $m1, $d1, $y1);
  19. $date2_set = mktime(0,0,0, $m2, $d2, $y2);
  20.  
  21. return(round(($date2_set-$date1_set)/(60*60*24)));
  22. }
  23.  
  24. echo date_diff('2002-01-01', '2003-12-31');
  25. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak sie liczy roznice dni:
http://forum.php.pl/index.php?showtopic=29...mp;hl=strtotime


proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
Go to the top of the page
+Quote Post
yasiu_kam
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.02.2007

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


Trochę poczytałem i chce zrobić to w miarę prostą metoda ale
  1. <?php
  2. $ilosc = ceil((strtotime(date)-strtotime('data_wypozyczenia'))/86400);
  3. ?>

wyswietla mi 0, tak samo
  1. <?php
  2. $ilosc = ceil((strtotime($data)-strtotime($data_wypozyczenia))/86400);
  3. ?>

daty w bazie('data_wypozyczenia') nie są takie jak dzisiejsza więc nie rozumiem dlaczego 0??
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez w tamtym linku widac jak wol, ze tam do strtotime() zapodaje sie date, np. 2007-05-14
a ty co zapodajesz? A ty zapodajesz tekst:data_wypozyczenia. no chlopie, mysl troche....
Tak samo to: strtotime(date) . co to ma byc?

edit:
no tu juz lepiej:
  1. <?php
  2. $ilosc = ceil((strtotime($data)-strtotime($data_wypozyczenia))/86400);
  3. ?>

A teraz pytanie: co jest w $data oraz w $data_wypozyczenia? Pokaz dokladnie nam co tam sie znajduje i od razu mowie, ze ma tam byc data w postaci RRRR-MM-DD
Go to the top of the page
+Quote Post
yasiu_kam
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 7.02.2007

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


  1. <?php
  2. $data=date('Y-m-d'); 
  3. $data_wypozyczenia=$_POST['data_wypozyczenia'];
  4. ?>


juz wiem ze jak daje echo $data_wypozyczenia; to nic nie wyswietla...

poza tym daty w bazie sa w formacie RRRR-MM-DD

daty już działają, jakoś sam do tego doszedłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. $ilosc = ceil(((strtotime($row['data_wypozyczenia'])-strtotime($data)+2592000)) /86400);
  3. ?>


Ten post edytował yasiu_kam 14.05.2007, 20:05:12
Go to the top of the page
+Quote Post

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: 25.08.2025 - 11:07