Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] jak obliczyć różnce pomiedzy datami
Forum PHP.pl > Forum > Przedszkole
raak07
jak obliczyć różnce pomiedzy datami
ale gdy rok jest wcześniejszy niż
zaczeła się uniksowa Epoka (1 stycznia 1970)
np. jaki czas upłyną od:
bitwy pod Grunwaldem w roku 1410
lub
bitwy pod Maratonem w roku 490 p.n.e.

proszę o pomoc
pozdrawiam
enigma
Google wiedzą tongue.gif
a sposób zależy czy dane są z bazy czy nie
np.:
sp.1
sp.2
raak07
dzieki
link sp.1 nie działa

moje pytanie nie bylo precyzyjne
i chodzilo mi o wyliczenie roznicy wymienionych dat
do daty biezacej

pozdrawiam
MajareQ
Mówi ci coś date(d.m.Y) - $_POST['data1'] questionmark.gif
raak07
  1. <?php
  2. $data = "1970-01-02";
  3. $biezaca_data = date("Y-m-d"); 
  4. $roznica = (strtotime($biezaca_data) - strtotime($data)) / (60*60*24);
  5. print "Od ".$data." do ".$biezaca_data." było ".$roznica." dni<br>";
  6. ?>


do tej wstecznej daty (1970-01-02) wszystko jest ok
(od 1970-01-01 rozpoczela sie Epoka Linuxa)

jak wiec obliczyc ilosc dni np.gdy $data = 1410-07-15
szykalem innych funkcji nie znalazlem
pozdrawiam
php programmer
Nie wiem po co ci takie stare daty, ale już musisz to można mniej więcej tak.

1. Musisz napisać najpierw funkcję, która mówi ile dni ma dany miesiąc
np dla IleDni(2007,11) daje 30,
ogólnie dni są 30 lub 31 w zalezności od miesiąca
z wyjątkiem lutego, który zależy od tego czy rok jest przestępny ($rok%4==0)
chyba php ma jakieś funkcje które ułatwią ci to, być może jest gotowa taka funkcja

2. Musisz napisać funkcję, która zwraca date następnego dnia, od dany podanej w parametrze
NexyDay('2007-11-15') daje '2007-11-16',
Do tej funkcji bedzie ci potrzebna informacja ile dni ma dany miesiąc Date("t")
3.
  1. <?php
  2. WHILE ($data1<$data2){
  3. $data1 = NextDay($data1);
  4. $licznikDni++;
  5.  }
  6. ?>
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.