[MySQL][PHP]Operacje na datach pobranych z MSQL, Tworzenie warunków w oparciu o odliczani daty |
[MySQL][PHP]Operacje na datach pobranych z MSQL, Tworzenie warunków w oparciu o odliczani daty |
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ą 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. |
|
|
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 -------------------- |
|
|
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/
-------------------- |
|
|
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 -------------------- Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU! |
|
|
24.01.2022, 10:44:14
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
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 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 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
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%) |
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 No jasne że nie musi. Jeśli w mysql jest format datetime to pewnie nie od parady czy dla beki Niemniej jednak jak tylko próbowałem używać formatu daty- zawsze coś mi nie działało W timestamp zawsze działa. Kiedyś czytałem ( i sam też popełniłem ten błąd ) gdzie przechowywałem zdjęcia w mysql Da się 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! |
|
|
26.01.2022, 10:24:55
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 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
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:36 |