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.

Kierunek

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