Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]obliczanie ile upłynęło lat, miesięcy i dni od daty do dziś, obliczanie ile upłynęło lat, miesięcy i dni od daty do dziś
kecajs
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Witam,
bardzo proszę o pomoc w rozwiązaniu takiego tematu:
potrzebuję policzyć, ile minęło lat, miesięcy i dni licząc od dziś do daty wstecz, np: data bieżąca: 23-04-2010, data historyczna: 15-05-2007.

Próbowałem czegoś takiego:
  1. <code>
  2. <?php
  3. $d1 = strtotime('2007-05-15');
  4. $d2 = time();
  5.  
  6. $y1 = date('Y', $d1);
  7. $y2 = date('Y', $d2);
  8. $m1 = date('n', $d1);
  9. $m2 = date('n', $d2);
  10. $da1 = date('d', $d1);
  11. $da2 = date('d', $d2);
  12.  
  13. $year_diff = $y2 - $y1;
  14. $month_diff = $m2 - $m1;
  15. $days_diff = $y2 - $y1;
  16.  
  17. echo $year_diff. " lat, " .$month_diff. " miesięcy, " .$days_diff. " dni";
  18.  
  19. ?>
  20. </code>

jednak tu jest problem, że skrypt ten liczy niejako osobno, tj. najpierw odejmuje lata, następnie miesiące i na końcu dni - i w sumie wychodzą bzdury, a do tego z wartościami ujemnymi.

Bardzo proszę o pomoc.

Pozdrawiam,
Jacek

Ten post edytował kecajs 23.04.2010, 22:50:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. $mktime = mktime (0,0,0,05,15,2007);
  2.  
  3. $unix = time() - $mktime;
  4.  
  5. $day = floor($unix / (60*60*24));
  6. $year = floor($unix / (365 * 24 * 60 * 60));
  7.  
  8. echo 'Dni: '. $day . ' Lat: ' . $year;
Go to the top of the page
+Quote Post
kecajs
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 23.04.2010

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


Cytat(kefirek @ 26.04.2010, 20:08:40 ) *
  1. $mktime = mktime (0,0,0,05,15,2007);
  2.  
  3. $unix = time() - $mktime;
  4.  
  5. $day = floor($unix / (60*60*24));
  6. $year = floor($unix / (365 * 24 * 60 * 60));
  7.  
  8. echo 'Dni: '. $day . ' Lat: ' . $year;

Kurczę, wyszło Dni: 1077, Lat: 2. Coś jest nie tak... (IMG:style_emoticons/default/sad.gif)

Pozdrawiam,
Jacek
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.06.2026 - 07:44