Chapman Posted May 10, 2010 Report Share Posted May 10, 2010 ir tā, ka DB man datums ir saglabāts šādi: 2010.12.01. 0:00:00 "Izvelkot" to no DB šādi: reg_date = mssql_query("Use SecKeyPrior Select * FROM S_Users Where Id = '$id'"); $reg_date = mssql_fetch_assoc($reg_date); $reg_date = $reg_date['Reg_Date']; Es dabonu rezultātā šo: Dec 1 2010 12:00AM kāpēc tā? un kā lai pārbaudu, salīdzinot current_time ar Reg_date, vai ir pagājušas 30 dienas? Quote Link to comment Share on other sites More sharing options...
Леший Posted May 10, 2010 Report Share Posted May 10, 2010 Nav ērtāk izmantot timestamp? To var glabāt parastajā int laukā. Quote Link to comment Share on other sites More sharing options...
Chapman Posted May 10, 2010 Author Report Share Posted May 10, 2010 Nav ērtāk izmantot timestamp? To var glabāt parastajā int laukā. kā tas īsti izskatās? :D Quote Link to comment Share on other sites More sharing options...
Леший Posted May 10, 2010 Report Share Posted May 10, 2010 http://en.wikipedia.org/wiki/Unix_timestamp http://php.net/manual/en/function.time.php http://dev.mysql.com/doc/refman/5.0/en/timestamp.html Quote Link to comment Share on other sites More sharing options...
Chapman Posted May 10, 2010 Author Report Share Posted May 10, 2010 (edited) http://en.wikipedia.org/wiki/Unix_timestamp http://php.net/manual/en/function.time.php http://dev.mysql.com/doc/refman/5.0/en/timestamp.html nu labi, ir itkā skaidrs, kas tas ir un kā darbojas, bet kā salīdzināt? <?php $unixtime = time(); echo "unixtime: " . $unixtime . "<br />"; echo "formatted: " . date("F j, Y, g:i a",$unixtime) . "<p />"; $settime = "1104537600"; echo "settime: " . $settime . "<br />"; $rtr = $unixtime-$settime; echo $rtr; echo "formatted: " . date("F j, Y, g:i a",$settime) . "<p />"; echo "1 minus 2: " . date("F j, Y, g:i a",$rtr) . "<p />"; ?> reku piemērs, kuru izraku, un pacentos arī atnemt no laiku no otra, pagaidān rezultātu naw :( Edited May 10, 2010 by Chapman Quote Link to comment Share on other sites More sharing options...
101111 Posted May 10, 2010 Report Share Posted May 10, 2010 $dateDiff = $date1 - $date2; $fullDays = floor($dateDiff/(60*60*24)); echo "Differernce is $fullDays days"; Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 10, 2010 Report Share Posted May 10, 2010 (edited) ir tā, ka DB man datums ir saglabāts šādi: 2010.12.01. 0:00:00 Murgs :( DB dtuma/laika glabasanai jaizmanto viens no formatiem 1. dateTime( date time) datu tips 2. UnixTimestamp dtu tips Katram ir savas prieksrocibas & minusi -- Tad briivi varesi noformateet datumu un laiku ar pasha SQL iebuvetajiem lidzekljiem VAI php pusee. PHP parasti izmanto ja vajag kautkaadu uber krutu formatejumu ( kutkadi mistiski tagi pvidu utt..), vi LV(Etc vlodu menesha nosaukumiem ) -- Edited May 10, 2010 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
Леший Posted May 10, 2010 Report Share Posted May 10, 2010 1. dateTime( date time) datu tips Šitam ir vairāk mīnusu, neka plusu, salīdzinājumā ar diezgan caurspīdīgu timestamp. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 10, 2010 Report Share Posted May 10, 2010 Šitam ir vairāk mīnusu, neka plusu, salīdzinājumā ar diezgan caurspīdīgu timestamp. Mulkjibas ... DateTime ir tieshi preteji vairak plusi nekaa minusi .. 1. SQL iebuvetas funkcias izpildisies atrak nekaa ar timestamp, jo tiek izlaists viens konvertesnas posms) 2. nav datuma ierobezojumi, pretstataa timestamp (1970/01.01 00:00:01 ) gribetu redzet kaa saglabasi cilveka vecumu kas buus dzimis 1969 gda 31 decembrii -> ljoti liels % ka buus kljuda 3. Timestamp nav VIZUALI uztverams, tas ir ja vajadzes atrast 'ar rocinjam' atrast kadu konkretu dtumu, tad chau... 4. Ar sql lidzekljiem vr daudzvienkarsak atrast konkreto laika spriidi ( datumu) Pretstataa Timestam, kur sakuma naksies izrekjinat cik tad nu sek ir pagajusas.. Piedevam ja laiks nepieciesams Precizi no datuma sakuma/beigam tad ar Timestamp nekas nesanaks ( 1 sek. nobiide) Neba velti SQL izstradats shis datu glabasanas formats -- Tiemstamp arii protams ir savi plusi. 1. Aiznjem mazak vietas ( nu ja cinja par baitiem ), un arii stipri nosaciti.. 2. Ja jsalidzina kads neliels laika posms ( teiksim cik minutes/stundas/dienas pagajushas), tad timestamp buus prieksrocibas 3. Ja jasaglaba, LAIKA zimogs , tas ir teiksim registracijas datums (pedejas izmanjas etc..) P.S. un gligi nesapratu 'Caurspidiigu', ja tev izrekjinat sekundes ir vienkarsak, nekaa nolasiit datumu, tad nu sor.. Quote Link to comment Share on other sites More sharing options...
briedis Posted May 10, 2010 Report Share Posted May 10, 2010 2. nav datuma ierobezojumi, pretstataa timestamp (1970/01.01 00:00:01 ) Nez, es glabāju timestampā laiku, un datums pirms 1970 glabājas kā negatīvs skaitlis :) .. bet ar >2038 gan būs problēmas (ja int's) Quote Link to comment Share on other sites More sharing options...
Chapman Posted May 12, 2010 Author Report Share Posted May 12, 2010 teikšu godīgi, man vienalga kurš datu tips! man tik vajag pateikt, vai ir pagājušas 30 dienas kops lietotāja izveides, kur lietotāju izveidojot DB tiek ierakstīts datums! Quote Link to comment Share on other sites More sharing options...
Леший Posted May 12, 2010 Report Share Posted May 12, 2010 (edited) Tad timestamp, un čeko tā: if (floor($ts/86400)*86400+86400*30 < $current_ts) If nostrādās jau 00:00, dienā, kad paies tās 30 dienas. Edited May 12, 2010 by Леший Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 13, 2010 Report Share Posted May 13, 2010 (edited) bet ar >2038 gan būs problēmas (ja int's) Tieši kāpēc?? (nav domāts kā: Es zinu labāk!, bet gan kā: Kāpēc?) $years = 68; // 2038 - 1970 $time = 60 * 60 * 24 * 30 * 12 * $years; echo $time; Edited May 13, 2010 by daGrevis Quote Link to comment Share on other sites More sharing options...
briedis Posted May 13, 2010 Report Share Posted May 13, 2010 Tieši kāpēc?? (nav domāts kā: Es zinu labāk!, bet gan kā: Kāpēc?) $years = 68; // 2038 - 1970 $time = 60 * 60 * 24 * 30 * 12 * $years; echo $time; http://en.wikipedia.org/wiki/Year_2038_problem Quote Link to comment Share on other sites More sharing options...
waplet Posted May 13, 2010 Report Share Posted May 13, 2010 Tā pat drīz jau visi pāries uz x64 arhitektūrām. Ir jau skaņas,ka cepjas augša 128 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.