Page 1 of 1

datos tikrinimas

Posted: 2014 Jan 20 22:37
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ą

Re: datos tikrinimas

Posted: 2014 Jan 20 22:56
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:

Re: datos tikrinimas

Posted: 2014 Jan 20 23:01
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'");

Re: datos tikrinimas

Posted: 2014 Jan 20 23:04
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ą?

Re: datos tikrinimas

Posted: 2014 Jan 20 23:21
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.

Re: datos tikrinimas

Posted: 2014 Jan 20 23:30
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.

Re: datos tikrinimas

Posted: 2014 Jan 21 18:24
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?