Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Operacje na datach pobranych z MSQL, Tworzenie warunków w oparciu o odliczani daty
JanMatuszak
post 23.01.2022, 15:14:42
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

Ostrzeżenie: (0%)
-----


Witam!
W bazie danych przechowuję sobie data czas w formie: 2022-01-01 18:39:12, nazwa pola DataOd, ponadto w bazie znajduje się pole o nazwie IleDni i przyjmuje wartość np. 365.
I teraz mam problem z magią smile.gif Chciałbym aby PHP sprawdziło czy data bieżąca jest wcześniejsza od DatyOd, czy data bieżąca mieści się w przedziale DataOd+IleDni, lub czy data bieżąca przekroczyła wartość DataOd+IleDni.
Jak zatem przekonwertować wartość z bazy na coś zrozumiałego dla PHP, oraz jak dodać określony czas do daty i jak zatem sprawdzić czy data znajduje się w przedziale.
Go to the top of the page
+Quote Post
trueblue
post 23.01.2022, 15:24:00
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W PHP:
https://www.php.net/manual/en/class.datetime.php
W MySQL: https://dev.mysql.com/doc/refman/8.0/en/dat...-functions.html


--------------------
Go to the top of the page
+Quote Post
viking
post 23.01.2022, 15:32:32
Post #3





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Albo możesz użyć np https://carbon.nesbot.com/docs/


--------------------
Go to the top of the page
+Quote Post
miccom
post 24.01.2022, 08:04:09
Post #4





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Ja nigdy nie zapisuję w mysql daty jako daty.
Konwerteruję datę przez strtotime() do formatu timestamp. Do tak zapisanej daty możesz dodać 365 dni, odjąć cokolwiek i zawsze to będzie operacja na liczbach.

Póki co nie udało mi się poznać nic lepszego smile.gif


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 24.01.2022, 10:44:14
Post #5





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat(miccom @ 24.01.2022, 07:04:09 ) *
Ja nigdy nie zapisuję w mysql daty jako daty.
Konwerteruję datę przez strtotime() do formatu timestamp. Do tak zapisanej daty możesz dodać 365 dni, odjąć cokolwiek i zawsze to będzie operacja na liczbach.

Póki co nie udało mi się poznać nic lepszego smile.gif

mysql ma tez typ o nazwie DATETIME gdzie dane sa w formacie 0000-00-00 00:00:00 i tez operacje na datach dzialaja bez problemu. To naprawde nie musi byc tylko timestamp wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miccom
post 26.01.2022, 09:00:40
Post #6





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 24.01.2022, 10:44:14 ) *
mysql ma tez typ o nazwie DATETIME gdzie dane sa w formacie 0000-00-00 00:00:00 i tez operacje na datach dzialaja bez problemu. To naprawde nie musi byc tylko timestamp wink.gif


No jasne że nie musi.
Jeśli w mysql jest format datetime to pewnie nie od parady czy dla beki smile.gif

Niemniej jednak jak tylko próbowałem używać formatu daty- zawsze coś mi nie działało smile.gif W timestamp zawsze działa.

Kiedyś czytałem ( i sam też popełniłem ten błąd ) gdzie przechowywałem zdjęcia w mysql smile.gif Da się smile.gif

Nie namawiam do timestamp, po prostu u mnie zawsze działa i nigdy nie mam problemów ze strefami czasowymi i innymi problemami z datami.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 26.01.2022, 10:24:55
Post #7





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Ja skolei zawsze uzywam DATETIME i nigdy tez nie mialem problemow, rowniez i ze strefami czasowymi. Najwyrazniej popelniales jakis blad wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 18:38