Carbon: nasze zmiany w projekcie open source
Rozszerzenie DateTime w PHP do pracy z datami, standard w ekosystemie Laravela.
- Język
- PHP
- Gwiazdki na GitHubie
- 16 591
- Strona projektu
- carbon.nesbot.com
Zmiana przyjęta w Carbon
round(), floor() i ceil() z dokładnością 60 sekund i więcej przenoszą wynik na minuty, godziny i dni, zamiast tylko zerować sekundy.
- Pull request #3359scalony 25 września 2026
Jak to sprawdziliśmy
Nowy test porównuje wyniki liczbowej precyzji z wersją tekstową: round(3600) z round('hour'), round(120) z round('2 minutes'), round(86400) z round('day'), a do tego floor(3600) tuż przed pełną godziną i ceil(3600) w połowie godziny.
Błąd, poprawka i wniosek
Skrót naszego opisu z Nowinek technicznych: co nie działało, co zmieniliśmy i co z tego wynika dla naszej pracy.
round(3600) zerował tylko sekundy
Dla liczbowej precyzji Carbon zaokrąglał samą wartość sekund, więc od 60 w górę minuty i godziny zostawały bez zmian.
Przeniesienie na wyższe jednostki
Liczbowa precyzja, która obejmuje całą następną jednostkę, jest przenoszona w górę: 3600 sekund to 60 minut, a 60 minut to godzina. Dni nigdy nie przechodzą na miesiące.
Zaokrąglanie czasu musi przenosić wynik na wyższe jednostki, tak jak dodawanie.
Godzina zaokrąglona do pełnej godziny nie może skończyć się na 60 minutach.
Inne projekty z naszymi zmianami: PHP
20 projektów w tej technologii ma nasze przyjęte zmiany. Pasek to gwiazdki repozytorium, obok liczba naszych zmian. Każdy wiersz prowadzi do strony projektu.
Pytania o nasze zmiany w Carbon
Skąd są te zmiany, kto je przyjął i czy poprawimy coś w Twojej bibliotece.
Czytaj dalej
Więcej o tej pracy i o pozostałych projektach z naszymi zmianami.
Używasz Carbon w swoim projekcie?
Jeśli coś w nim nie działa, poprawimy to u źródła i zostawimy obejście do czasu wydania. Odpiszemy w godzinę.