Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> lista wszystkich dat w podanym zakresie (od > do)
tomaxs
post 2.11.2004, 19:11:22
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2003

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


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


--------------------
----
tomaxs
Go to the top of the page
+Quote Post
sf
post 2.11.2004, 19:17:21
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


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


spróbuj tak, w mysql działa ;}


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Vengeance
post 2.11.2004, 19:53:45
Post #3





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


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


--------------------
Go to the top of the page
+Quote Post
yavaho
post 2.11.2004, 20:05:32
Post #4





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


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?

Ten post edytował yavaho 2.11.2004, 20:06:32


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
tomaxs
post 2.11.2004, 21:41:22
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.10.2003

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


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

Ten post edytował tomaxs 2.11.2004, 22:21:51


--------------------
----
tomaxs
Go to the top of the page
+Quote Post
qba.p
post 3.11.2004, 00:15:04
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.11.2004

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


  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
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: 16.06.2025 - 20:48