Cofanie daty

0

Witam!

Chciałbym na stronie wyświetlić zdarzenia z bazy z ostatnich 7 dni
W zapytaniu w SQLu robi się to prosto ale jak zrobić to w PHP
"sczytanie" daty aktualnej jest proste date("Y-m-d");
schody zaczynają się przy ustaleniu z automatu daty 7 dni wstecz
myślałem, żeby zgrać

rok=date("Y");
miesiac=date("m");
dzien=date("d");

do osobnych zmiennych i odejmować od dnia 1 w pętli for i sprawdzać czy dzień=0 jeśli tak to zmniejszać miesiąc o jeden. Ale w momencie kiedy dzien=0 i zmniejszę miesiąc o 1 i co później wpisać w dzień przecież nie każdy miesiąc ma tyle samo dni i co w momencie kiedy miesiącem będzie styczeń czyli miesiac=1 . Jak zmniejszę miesiąc o 1 to miesiac będzie równy 0 czyli bzdura :(
ma ktoś jakiś sposób żeby to obejść ?

0

zależy jaką masz strukturę danych w bazie. generalnie skorzystaj z funkcji time()-3600247 i z tego time'u wygeneruj datę za pomocą date()

0

to co podał(a) @cosma7234723492, albo po prostu funkcja mktime, bądź strtotime (która pozwala na podanie daty w stylu "2010-01-01 -10 days"), albo MySQL-owe DATE_ADD z ujemnym INTERVAL

0

w bazie danych daty mam zapisane w formacie "datetime" (YYY-mm-dd hhss)
nie wiem czy dobrze to opisałem
ja chcę żeby za pomocą PHP (a nie za pomocą danych sczytanych z bazy) ustalić datę dzisiejszą i 7 dni temu np.

$dzisiaj=date("Y-m-d");
$7dnitemu=................................. //  <- jakby tutaj miał wyglądać kod ???

i później użyć tych dwóch zmiennych w zapytaniu SQL np.

SELECT * FROM zdarzenia WHERE data BETWEEN $dzisiaj AND $7dnitemu

o coś takiego mi chodzi i nie wiem właśnie jakiej funkcji mam użyć i jak ma wyglądać kod określenia zmiennej $7dnitemu

$7dnitemu=......................................... // <- co tutaj wpisać jak określić tą datę którą później wykorzystam w zapytaniu SQL ?
0

Spróbuj

 
$7dnitemu=time() - (7 * 24 * 60 * 60);
echo '7 dni temu: '. date('Y-m-d', $7dnitemu) ."\n";
0

OK o to chodziło

zobaczymy jeszcze jak to będzie chodziło na przełomie miesięcy :)

dzięki reinman

0
echo date( 'Y-m-d H:i:s', strtotime( '-7 days' ) );

1 użytkowników online, w tym zalogowanych: 0, gości: 1