Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: lista wszystkich dat w podanym zakresie (od > do)
Forum PHP.pl > Forum > PHP
tomaxs
Witam,

Mam taki problem , mam zmienna $a ktora jest data (np 2004-09-30) oraz druga zmienna ktora rowniez reprezentuje jakas date np (2004-10-02).

Czy istnieje jakis szybki sposob wyswietlenia listy dat ktore sa pomiedzy tymi dwoma .. czyli :

2004-09-30
2004-09-31
2004-10-01
2004-10-02

probowalem uzyc zapytania sql TO_DAYS(2004-09-30) - TO_DAYS(2004-10-02) ale ono zwraca tylko liczbe dni ..

Z gory dzieki za ewentualne wskazowki smile.gif

pozdr.
tomaxs
sf
  1. SELECT * FROM `news` WHERE `nDate`>="20040930" AND `nDate`<="20041002";


spróbuj tak, w mysql działa ;}
Vengeance
nie jestem pewien czy to mial na mysli autor co ty @sf przedstawiles ale jesli tak to mozna jeszcze uzyc FROM_UNIXTIME()
jako paramter dajesz ta swoja date i masz liczbe INT przedstawiajaca date. a wtedy to juz te >= AND <= z kodu @sf
yavaho
zobacz na to
  1. <?php
  2. $dzien=86400; //jeden dzien ma 86400sek
  3. $data=('2004-11-02');
  4. $time=strtotime($data); // zamieniasz date na sekundy
  5. echo $time, &#092;"<br>\";
  6. $data= gmdate('Y-m-d', $time+$dzien); // formatujesz z powrotem na [rrrr-mm-dd] i dodajesz jeden dzien
  7. echo $data, &#092;"<br>\";
  8. ?>

lub podobnie
  1. <?php
  2. $data=('2004-11-02');
  3. $time=strtotime($data+&#092;"1 day\"); // zamieniasz date na sekundy i dodajesz jeden dzien
  4. echo $time, &#092;"<br>\";
  5. $data= gmdate('Y-m-d', $time); // formatujesz z powrotem na [rrrr-mm-dd]
  6. echo $data, &#092;"<br>\";
  7. ?>

Nie wiem tylko czy nie trzeba bedzie wprowadzic korekty tej daty na czas lokalny?
tomaxs
yavah: dzieki za pomoc smile.gif

po wyliczeniu ile jest dni , funkcja ktora pisalem wyzej moge za pomoca twojego przeksztalcenia / dodawania daty,w zwyklej petli wyswietlic sobie liste interesujacaych dat smile.gif dzieki smile.gif
qba.p
  1. SELECT * FROM news WHERE date BETWEEN '$date1' AND '$date2'


tylko $date1 i $date2 muszą być w formacie YYYY-MM-DD

To jest chyba najprostszy sposób... rolleyes.gif

Chyba, że ktoś ma zastrzeżenia, to niech mnie sprostuje biggrin.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-2025 Invision Power Services, Inc.