Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie dni do okreslonej daty
macdavido
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 10.03.2006
Skąd: Warszawa

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


Witajcie ponownie
probuje zrobic jakies porownanie na dacie ale nie bardzo moge doszukac sie jak mozna, wiec moze musze trzasnac jakas funkcje przeliczajaca.

Mam date startowa oraz koncowa w bazie i ilosc dni jako zmienna w skrypcie php. W bazie MySQL tabela zawiera kolumne data1 (startowa) data2 (koncowa) wszystkie sa typu DATE.

Teraz w php mam cos takiego w zmiennych:

  1. <?php
  2. $startdate = "2006.06.17";
  3. $iloscdni = 14;
  4. ?>

chodzi o zapytanie, ktore wyswietli wszystkie pozycje spelniajace warunek ze mieszczacy sie w tym przedziale. Nie wychodzi mi sprawdzanie pola daty na zasadzie:

  1. SELECT * FROM tabela WHERE data1>='$startdate' AND data2<='$startdate+$iloscdni'

Powyzsze ogolnie jest wlasnie opisem problemu i o co mi w warunku chodzi, jednak niestety tak latwo sie nie da. Czy jest to jakos w prosty sposob do uzyskania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




DATE_ADD
http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html
Ino data ma byc w formacie rrrr-mm-dd a nie rrrr.mm.dd

No i w php mozna takie numerki robic przy uzyciu chociazby strtotime()
Go to the top of the page
+Quote Post
macdavido
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 10.03.2006
Skąd: Warszawa

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


Powiem tak
to forum jest normalnie bezcenne
Dzieki wielkie za podpowiedz (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Do tego te kropki zamiast myslnika :-)
sprobuje to zaimplementowac (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
bendi
post
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(nospor @ 19.06.2006, 12:46 ) *
Ino data ma byc w formacie rrrr-mm-dd a nie rrrr.mm.dd

Nie całkiem - otóż MySQL dopuszcza pewne odstępstwa od sztywnych reguł daty w formacie iso-8601 i tak można pominąć zera w przypadku dnia i miesiąca oraz dodać inne separatory byle cały czas były takie same:
  1. INSERT INTO tabela (DATA) VALUES('2005.1.24');
  2. INSERT INTO tabela (DATA) VALUES('2005.01.24');
  3. INSERT INTO tabela (DATA) VALUES('2005/1/24');

Sa poprawnymi stwierdzeniami i odpowiadają:
  1. INSERT INTO tabela (DATA) VALUES('2005-01-24');


Ten post edytował bendi 19.06.2006, 13:57:13
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@bendi masz jak (prawie) zwykle rację (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jesli by chodzilo tylko o mysql to faktycznie mozna uzywac roznych separatorów. Ja mialem jednak rowniez na mysli zapodanie tej daty do strtotime(). Tam podanie rrrr.mm.dd da nam zle wyliczenie. Ale moja wina w zlym miejsu podalem to zastrzezenie odnosnie separatora.
Oczywiscie Twoja uwaga jest jak najbardziej sluszna, aczkolwiek osobiscie wole trzymac sie standardu by sie kiedys tam nie pomylic.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:55