Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Operacje na datach pobranych z MSQL
Forum PHP.pl > Forum > Przedszkole
JanMatuszak
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.
viking
Albo możesz użyć np https://carbon.nesbot.com/docs/
miccom
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
nospor
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
miccom
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.
nospor
Ja skolei zawsze uzywam DATETIME i nigdy tez nie mialem problemow, rowniez i ze strefami czasowymi. Najwyrazniej popelniales jakis blad wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.