![]() |
![]() ![]() |
![]() |
-plejaz- |
![]()
Post
#1
|
Goście ![]() |
Witam, czy jest możliwość wyliczenia przy pomocy php liczby dni na podstawie daty, która jest zwracana z bazy danych ?
Mam 3 kolumny: W dwóch pierwszych $od i $do wpisuję ręcznie daty w formacie DD-MM-RRRR Trzecią kolumnę $wynik chcę zrobić wynikiem w formie liczby dni $od - $do = $wynik
Ten post edytował plejaz 11.08.2017, 14:33:30 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Pisales mi na PW ze wiesz jak uzywac diff.
Jaki wiec masz problem by wstawic do diff zmienne $od oraz $do? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-plejaz- |
![]()
Post
#3
|
Goście ![]() |
Problem mam taki, że nie potrafię tego zaimplementować, próbowałem różnych wariantów pracy z funkcją diff,.
Wiem jak odjąć daty wpisane ręcznie, ale nie wiem jak odjąć daty, które są wyświetlane z bazy danych. Przykład jaki chcę zastosować to:
Wynik mam zwracany jako 2, a powinno być 3. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
I wynik jest prawidłowy.
Od północy 9-tego do północy 10-tego, to 1 dzień. Od północy 10-tego do północy 11-tego, to kolejny dzień. Razem 2 dni. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cool, a ja sie poraz kolejny pytam jaki masz problem by wstawic tam zmienne?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-plejaz- |
![]()
Post
#6
|
Goście ![]() |
Matematyczny wynik jest ok, a jak uwzględnić 11.08 jako włącznie ? Wtedy mam 09, 10, 11 - czyli 3 dni.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A jak z dwójki robisz trójkę?
-------------------- |
|
|
-plejaz- |
![]()
Post
#8
|
Goście ![]() |
Cool, a ja sie poraz kolejny pytam jaki masz problem by wstawic tam zmienne?
Robiłem tak i wynik zwracany mam jako "0". W tabeli bazy danych ustawiałem typ jako DATE i VARCHAR i nie mogę uzyskać wyniku.
A jak z dwójki robisz trójkę? Nie bardzo rozumiem Twoje pytanie. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To pokaz co zawiersa $od.
Moze masz zly format. var_dump($od); var_dump($do); Co do zrobienia z 2 3 naprawde nie wiesz ze trzeba zrobic: 2 + 1 = 3 ? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Trzeba też pamiętać że ma być poprawna strefa czasowa ustawiona.
-------------------- |
|
|
-plejaz- |
![]()
Post
#11
|
Goście ![]() |
To pokaz co zawiersa $od. Moze masz zly format. var_dump($od); var_dump($do); string(10) "08.08.2017" string(10) "11.08.2017" - te wartości są wpisane ręcznie w bazie danych. Cytat Co do zrobienia z 2 3 naprawde nie wiesz ze trzeba zrobic: 2 + 1 = 3 ? przemilcze... Ok działa, problemem był zły ciąg znaków w bazie danych. Ten post edytował plejaz 11.08.2017, 16:20:02 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dodanie 1 do wyniku nie rozwiąże problemu. W przypadku gdy autor tematu będzie chciał wyliczyć róźnicę między 1.01 12:30 a 1.01 14:30 zwróci sobie 1 dzień. Problem leży w definicji słowa dzień. Skrypt który który zwracał 2 zwracał informację o dobach które minęły, idąc dalej można pokusić się o reguły definiujące kiedy zaczyna się nasz "dzień" (np jeżeli będzie to wykorzystywane jako dni pracy). Moim zdaniem samo dorzucenie +1 może być w mylące.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ale w tym przypadki mowimy o tych samych godzinach (a przynajmniej tak wynika z kodu) wiec nie bedzie problemu o ktorym wspomniales
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli pominiemy godziny to i tak wg mnie różnica między datami równa 2 jest poprawną odpowiedzią jednak z różnych przyczyn autor tematu chce mieć 3, pytanie czy dla różnicy 1.01 a 1.01 chce otrzymać 0 czy jednak 1?
Ten post edytował Puszy 16.08.2017, 15:02:40 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Autor dał odpowiedź w poście numer 6.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 08:41 |