datos tikrinimas

Forumas skirtas klausimams/pamokoms susijusioms su PHP, SQL (MySQL), web technologijomis, HTML, CSS, javascript, turinio valdymo sistemomis ir kita.
Post Reply
Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

datos tikrinimas

Post by Spag »

Kaip patikrinti gaunamą datą iš mysql tokią: 1390240220 ar yra šiandienos data?


Bet patikrinti imant iš mysql, pvz.:

Code: Select all

$dabartine_data = date("Y-m-d");WHERE `data` = '$dabartine_data' ...
Aš noriu patikrinti tik metus, mėnesį ir dieną

User avatar
V1LKAS
Flooderis arba specialistas
Posts: 612
Joined: 2012 Nov 08 12:55
Skype: darius489

Re: datos tikrinimas

Post by V1LKAS »

Code: Select all

$dabartine_data = strtotime(date('Y-m-d'));
ir tikrink su if date() t.t iš tikro nlb suprantu ko konkrečiai nori :8:
Last edited by V1LKAS on 2014 Jan 20 23:01, edited 1 time in total.

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: datos tikrinimas

Post by Spag »

V1LKAS wrote:

Code: Select all

$dabartine_data = strtotime(date('Y-m-d'));
ir tikrink su if date() t.t
strtotime dabartine data pavers tokiu formatu kaip iš mysql gaunama data, bet gaunama data yra ir su minutėm, valandom, sekundėm. Ji nėra tiksli, kad būtų tik metai, mėnesis ir diena.

Man reikia patikrinti suapvalintai tik metus, mėnesį ir dieną.

Ir kaip pačiame mysql gavime tikrinti?

Code: Select all

mysql_query("SELECT * FROM `nesvarbu` WHERE `data` = '$dabartine_data'");

User avatar
V1LKAS
Flooderis arba specialistas
Posts: 612
Joined: 2012 Nov 08 12:55
Skype: darius489

Re: datos tikrinimas

Post by V1LKAS »

Liks tik Y-m-d:

Code: Select all

$dabartine_data = strotime(date("Y-m-d", 1390240220));
tą savo timestamp paimamą datą prisiskirsk tiesiog $timestamp = kazkokia data(1390240220)

Code: Select all

$dabartine_data = strotime(date("Y-m-d", $timestamp));
Nlb suprantu ko tu tiksliai nori,
Sutrumpinti datą ir paskui su gauta reiškme pasimti iš mysql kažką?

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: datos tikrinimas

Post by Spag »

V1LKAS wrote:Liks tik Y-m-d:

Code: Select all

$dabartine_data = strotime(date("Y-m-d", 1390240220));
tą savo timestamp paimamą datą prisiskirsk tiesiog $timestamp = kazkokia data(1390240220)

Code: Select all

$dabartine_data = strotime(date("Y-m-d", $timestamp));
Nlb suprantu ko tu tiksliai nori,
Sutrumpinti datą ir paskui su gauta reiškme pasimti iš mysql kažką?

Dabartinė data gaunama gerai kaip man ir reikia:

$dabartine_data = date("Y-m-d");

Ją atvaizduos taip: 2014-01-20 šiuo metu.

Pačiam mysql'e turiu kitą datą kuri atvaizduojama taip: 1390240220
į tuos skaičius įeina ir valanda kažkokia ir minutės kažkokios.

Man reikia tą datą iš mysql paimti paversti grubiai tik į metus, mėnesį ir dieną ir patikrinti ar yra lygi šia datai $dabartine_data


Tačiau tikrinti reikia pačiame mysql'e imant, nes man reikia suskaičiuoti kiek tokių datų lygių yra iš viso.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: datos tikrinimas

Post by aaarnas »

1390240220
yra
Mon, 20 Jan 2014 17:50:20 GMT

"Šiandienos data" kaip supratau yra valandos virš 00.00

Tai tarkim paimkim dabartinį laiką: 1390252475
kas yra Mon, 20 Jan 2014 21:14:35 GMT
Lietuvos laiku (GMT+2) Mon, 20 Jan 2014 23:14:35 GMT

Konvertuojam 1390252475 laiką į pirmąją sekundę, kada tai yra "šiandien":
1390252475-(1390252475%216000) = 1390176000

Gauname 1390176000
Kas yra Mon, 20 Jan 2014 00:00:00 GMT

Tad, dabar galima daryti užklausą tiesiog:

Code: Select all

$dabartine_data = time()-(time()%216000);WHERE `data` >= '$dabartine_data' ...
Ką čia turime? Paskaičiuojame laiką, kada prasidėjo "šiandienos" data ir žiūrime ar timestamp esantis duombazėje yra didesnis už "šiandienos" timestamp. Jei didesnis - vadinasi tai ši diena, jei mažesnis - praeita ar vėlesnė data.

Čia kam labiau patinka loginiai išmąstymai.

P.S. Datų lyginti negali, nes lygindamas timestamp, tu lygini konkrečią valandą, minutę ir sekundę. Tad turi žiūrėti daugiau ar mažiau, o ne lyginti konkrečiai, nes duombazėje esančios reikšmės yra su konkrečiu laiku, o ne diena.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Spag
Gana aktyvus vartotojas
Posts: 269
Joined: 2012 Dec 31 15:39

Re: datos tikrinimas

Post by Spag »

susitvarkiau, tereikėjo man to strtotime, nežinojau kaip konvertuoti ir tikrinimo ( >= ).

O susitvarkiau simple metodais, Arnai tavo data time blogai atvaizduojama. Bet jau nebesvarbu. + karma jum.

Ta prasme "blogai atvaizduojama"? Kas ne taip?

Post Reply

Who is online

Users browsing this forum: No registered users and 26 guests