• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczanie ilości rozpoczętych dni, a nie różnicy między datami

Object Storage Arubacloud
0 głosów
509 wizyt
pytanie zadane 2 września 2018 w PHP przez Lunatyk Początkujący (420 p.)
Cześć,

mam problem z napisaniem funkcji która obliczy ilość rozpoczętych dni. Mam podany pewien przedział czasu, który jest podzielony na przeszłość i przyszłość. Chcę policzyć ile dni należy do przeszłości, a ile do przyszłości.
Przykłady:
- START 31.08.2018 17:10:00, KONIEC 06.09.2018 22:41:15, TERAZ 02.09.2018 15:02:37
Przeszłość powinna mieć policzone 3 dni, a przyszłość 4. Każdy dzień jest liczony pojedynczo.
- START 02.09.2018 13:04:18, KONIEC 02.09.2018 18:37:00, TERAZ 02.09.2018 15:04:00
Policzony tylko jeden dzień, nieważne czy do przeszłości czy do przyszłości.

Przedziały czasu liczone są w oddzielnych funkcjach, a potem przekazywane są do jednej wspólnej funkcji, której zadaniem jest obliczenie ilości dni. Właśnie tu mam problem i proszę o pomoc bardziej doświadczone osoby :)

3 odpowiedzi

+2 głosów
odpowiedź 2 września 2018 przez Ehlert Ekspert (212,670 p.)

Użyj diffa. Polecam też Carbona

komentarz 2 września 2018 przez Lunatyk Początkujący (420 p.)
Funkcja diff właśnie nie działa. Przykład (przeszłość): 01.09.2018 23:54:31 - 02.09.2018 05:54:31. Minęło 6 godzin, więc diff zwraca 0, bo nie ma nawet 1 doby, a chciałbym aby policzył mi 2 dni - 1 i 2 września
komentarz 2 września 2018 przez Ehlert Ekspert (212,670 p.)
No to licz z timestampa. Carbon rozwiązuje takie problemy.
0 głosów
odpowiedź 2 września 2018 przez Aisekai Nałogowiec (42,190 p.)
edycja 2 września 2018 przez Aisekai
Nie pisze w php, ale pierwszy post z SO, pod zapytaniem: "php count days between dates".

https://stackoverflow.com/questions/2040560/finding-the-number-of-days-between-two-dates

Przy czym jak sam napisałeś masz dwa przedzialy:

(start,teraz), [teraz,koniec) - który przedzial sobie domkniesz to zależy od Ciebie i zalozen.
0 głosów
odpowiedź 3 września 2018 przez Lunatyk Początkujący (420 p.)
Okej, poradziłem sobie sam, w nieco inny sposób. Policzyłem "odległość" między datami zwykłym diffem, a następnie sprawdziłem nie tylko dni, ale też godziny co na kilku prostych warunkach pozwoliło mi uzyskać zamierzony efekt. Nie pozostaje mi nic jak tylko czekać na zdanie klienta :)
komentarz 3 września 2018 przez Aisekai Nałogowiec (42,190 p.)
edycja 3 września 2018 przez Aisekai
Dobra, ale po co Ci w tym wszystkim czas, bo może ja coś źle zrozumiałem? Nawiązując do drugiego przypadku: w przedziale od (przeszlosc,przyszlosc) masz tylko jeden sporny dzień. Dzien "Teraz". Wszystko do daty teraz, należy do przeszlosci, wszystko od daty teraz - przyszłości. Dzien "Teraz" możesz zaliczyć albo do przyszłości (bo np od 15:04 jest juz przyszłość) albo do przeszłości (do 15:04 jest przeszlosc).
komentarz 3 września 2018 przez Lunatyk Początkujący (420 p.)
Godziny są potrzebne, bo docelowo będzie drugi moduł pozwalający na wynajem godzinowy - tam stawka będzie inna i sam system przeliczania także.

Podobne pytania

0 głosów
1 odpowiedź 1,476 wizyt
0 głosów
2 odpowiedzi 490 wizyt
pytanie zadane 28 marca 2018 w PHP przez mikoh81 Obywatel (1,260 p.)
0 głosów
2 odpowiedzi 1,069 wizyt
pytanie zadane 5 października 2017 w C i C++ przez krzychu1324 Nowicjusz (140 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...