![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem ![]() -------------------- GG: 564555
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
cały czas zamieniam datę na strtotime i wtedy odejmuje ... ale nie rozumiem dodajesz rok i porównujesz ?
-------------------- GG: 564555
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Może ułatw sobie życie i nie sprawdzaj, czy minie rok, ale czy minie założona, stała liczba dni, np. 365?
![]() Czyli chodzi mi o to, czy aby na pewno potrzebne Ci nieprecyzyjne pojęcie roku? To trochę tak jak z kupowaniem biletów miesięcznych komunikacji miejskiej. Mimo, że ma "miesięczny" w nazwie, to tak naprawdę zawsze kupuje się go na 30 dni - i wszystkie kalkulacje są proste ![]() -------------------- there is much to be learned
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Od czegoś ten DateTime w końcu jest, co nie?
PS. W PHP operatory porównania dla obiektu DateTime są przeciążone, stąd możliwość takiego zapisu. Ten post edytował Crozin 8.03.2012, 02:24:54 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Super działa
![]() $yearAgo = new DateTime('+1 year'); $someDate = new DateTime('08.03.2013'); to warunek $someDate == $yearAgo powinien być spełniony ale nie jest, jak sprawdzić czy minie równy rok ? -------------------- GG: 564555
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na tej stroniesprawdz rok przestepny
jest fajna fukcja ktora sprawdza czy rok jest przestepny wtedy wiesz ile dni masz masz odejowac "function is_leap($year=NULL) { return checkdate(2, 29, ($year==NULL)? date('Y'):$year); // true if is a leap year }" poczytaj otez tutaj http://md.php.net/manual/en/function.date.php o leap year Ten post edytował poli25 8.03.2012, 12:49:37 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Już sobie ładnie poradziłem
![]() $yearAgo = new DateTime(date('d.m.Y') . '- 1 year'); A jak sprawdzić ile miesięcy jest różnicy między tymi datami ? Kod $start = strtotime(date('d.m.Y')); $stop = strtotime('1.03.2013'); echo round(($stop-$start)/60/60/24/30); Dobrze to obliczam ? Ten post edytował Elber 8.03.2012, 16:18:49 -------------------- GG: 564555
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
kurcze nie umiem znaleźć precyzyjnej metody która mi dokładnie policzy ile miesięcy jest różnicy np. między 08.03.2012 (dziś) a 06.06.2014
![]() -------------------- GG: 564555
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Pomiędzy tymi dwoma datami minęło 26, nie 27 miesięcy.
2. Da się to obliczyć przy pomocy podanych przeze mnie metod. Pokaż co próbowałeś zrobić. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod $data_teraz = date('d.m.Y');
$data_podana = '07.08.2012'; $datetime1 = date_create($data_teraz); $datetime2 = date_create($data_podana); $diff = $datetime1->diff($datetime2); $miesiace = $diff->format('%m'); echo $miesiace; -------------------- GG: 564555
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Podpowiedź: DateInterval zawiera liczbę lat, miesięcy, dni, godzin, minut oraz sekund. Czyli łączna ilość miesięcy to 12 * liczbaLat + liczbaMiesięcy.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ale nie wiem jak go użyć w praktyce ;(
-------------------- GG: 564555
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko byłoby super gdyby nie zerował liczby miesięcy, bo jak już wskoczy 1 rok to miesiące na 0 przeskakują ;/
-------------------- GG: 564555
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Serio? Nie potrafisz liczby lat i miesięcy zamienić na łączną liczbę miesięcy, mając do tego podany wzór? Zdajesz sobie sprawę, że takie zadanie mogłoby być ubliżające dla co poniektórych przedszkolaków?
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sory, ale męczę to już tyle godzin że nie myślę racjonalnie, mogę pomnożyć $diff->y * 12 jeśli jest większy niż 0
-------------------- GG: 564555
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:00 |