Dodawanie i odejmowanie czasu od daty
Dodaj lub odejmij lata, miesiące, tygodnie i dni od daty, z końcami miesięcy traktowanymi tak, jak rozumieją je ludzie.
Przesuń datę do przodu lub do tyłu o okres opisany w latach, miesiącach, tygodniach i dniach. Każda część jest opcjonalna i można je łączyć.
Jak to działa
Najpierw stosuje się lata i miesiące, jako miesiące. Jeśli dany dzień miesiąca nie istnieje w miesiącu docelowym, zostaje przycięty do ostatniego dnia tego miesiąca: miesiąc po 31 stycznia to 28 lutego, a w roku przestępnym 29 lutego.
Tygodnie i dni dodaje się potem jako pojedyncze dni, już po tym przycięciu, więc zawsze przesuwają datę dokładnie o żądaną liczbę dni.
Kolejność ma znaczenie i nie jest przypadkowa. Najpierw miesiące, potem dni — to konwencja stosowana przez wszystkie aplikacje kalendarzowe i jedyna, przy której dodanie miesiąca, a potem dnia daje taki wynik, jaki podałby człowiek.
Przykłady
| Przypadek | Dane wejściowe | Wynik |
|---|---|---|
| Miesiąc dodany do ostatniego dnia stycznia | 2026-01-31, dodaj 1 miesiąc | 2026-02-28, sobota |
Najczęściej zadawane pytania
Dlaczego miesiąc po 31 stycznia to nie 3 marca?
Bo to przepełnienie, a nie data. PHP daje taki wynik, dodając jeden do miesiąca i zachowując dzień 31, którego luty nie ma. Przycięcie do 28 lutego to właśnie to, co przez „za miesiąc” rozumieją umowa, cykl najmu i człowiek.
Czy strefy czasowe lub czas letni wpływają na wyniki?
Nie. Obliczenia działają na datach kalendarzowych w UTC, więc dzień to zawsze dzień. Jeśli trzeba przenieść konkretny moment między strefami, właściwym narzędziem jest przelicznik stref czasowych.
Czy weekendy i święta są pomijane?
Nie, liczy się każdy dzień. Liczenie tylko dni roboczych to inne pytanie, a odpowiada na nie kalkulator dni roboczych, z tygodniem pracy i listą świąt, które podajesz ty.
Warto wiedzieć
- Daty są traktowane jako daty kalendarzowe w UTC; nie stosuje się żadnej korekty strefy czasowej ani czasu letniego.
- Dodanie, a potem odjęcie tego samego okresu nie zawsze prowadzi z powrotem do daty początkowej. To właściwość długości miesięcy, a nie błąd: gdy 31 stycznia zostanie przycięty do 28 lutego, informacja, że był to 31. dzień, przepada.
Wszystkie narzędzia z kategorii Data i czas