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
micha12344
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 16.01.2009
Skąd: lubelskie

Ostrzeżenie: (10%)
X----


to chyba bedzie jakos tak

  1. $przeszla = mktime (18, 39, 33, 2, 22, 2000); // godzina, minuta, sekunda, miesiac, dzien, rok
  2.  
  3. $date = strtotime(date("Y-m-d H:i:s"));
  4.  
  5. $dobra = $date - $przeszla;
  6. $dni = date('z', $dobra);


Ten post edytował micha12344 23.04.2010, 22:04:12
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(micha12344 @ 23.04.2010, 23:03:02 ) *
to chyba bedzie jakos tak

  1. $przeszla = mktime (18, 39, 33, 2, 22, 2000); // godzina, minuta, sekunda, miesiac, dzien, rok
  2.  
  3. $date = strtotime(date("Y-m-d H:i:s"));
  4.  
  5. $dobra = $date - $przeszla;
  6. $dni = date('z', $dobra);


A jak to ma działać? Tj. pokaże mi wynik w postaci lat, miesięcy i dni? Czas mi jest niepotrzebny, dlatego niech go w ogóle nie będzie.
Dodam jeszcze, że data historyczna będzie niezmienna, tj. na stałe wpisana do skryptu.
Bardzo proszę o dalszą pomoc.

Pozdrawiam,
Jacek

Cytat(blooregard @ 23.04.2010, 22:33:39 ) *
Proszę dodać BBCode.

OK, już poprawiłem - przepraszam

Zainteresuj się time(), date(), mktime()

a może coś bliże? Poczytałem trochę na temat podanych funkcji, jednak nie jestem w stanie nic sensownego sklecić (IMG:style_emoticons/default/sad.gif)


Może jeszcze jakaś podpowiedź (IMG:style_emoticons/default/smile.gif)


Cytat(blooregard @ 23.04.2010, 22:33:39 ) *
Proszę dodać BBCode.

Już poprawiłem - przepraszam za niedopatrzenie

Zainteresuj się time(), date(), mktime()

A coś bliżej? Przejrzałem te funkcje, ale nie potrafię sklecić czegoś sensownego.


Bardzo proszę o dalsze wskazówki.

Pozdrawiam,
Jacek

Bardzo proszę o pomoc - jest to dla mnie ważne, a nie mogę sobie sam poradzić - dla Was to chyba nie jest zbyt skomplikowany temat? A może jest to nie do wykonania? W takim razie proszę o pomoc w rozwiązaniu tematu w sposób możliwy do realizacji i najbliższy założeniom.

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