EdgarsK Posted August 5, 2010 Report Share Posted August 5, 2010 <?php function validate_timestamp($t){ if(!is_numeric($t)) return false; if(date("Y",$t)<=1990)) return false; return true; } ?> šobrīd lai validētu timestamp, ko reiz kāds php kods izveidojis, izmantoju šādu funkciju. tagad ir neliels misēklis šajā sakara, tapēc ari jautājums: Vai ir kāda standarta funkcija, kura pārbauda vai dotais timestamp ir derīgs ? Misēklis: cilvēks ar roku ievada datumu, to ar strtotime pārvērš timestampā, ja ir bijušas kļūdas to vajag pārbaudīt, bet funkcija gļuko un ir būtu noderigi zināt, vai ir standarta funkcija kura pārbauda timestamp Quote Link to comment Share on other sites More sharing options...
101111 Posted August 5, 2010 Report Share Posted August 5, 2010 (edited) if (checkdate(date("m", $timestamp), date("d", $timestamp), date("Y", $timestamp))) { //ir ok } Tā kaut kā neder? Edited August 5, 2010 by 101111 Quote Link to comment Share on other sites More sharing options...
Kavacky Posted August 5, 2010 Report Share Posted August 5, 2010 Oho, vai tad ir arī nederīgi timestampi? Quote Link to comment Share on other sites More sharing options...
Леший Posted August 5, 2010 Report Share Posted August 5, 2010 Nederīgi timestamp ir visi ne-int, kā arī visi negatīvie int :D Patiesībā, to validāciju ir jātaisā pirms konvertēšanas uz timestamp, savādāk, nebūs jēgas. Quote Link to comment Share on other sites More sharing options...
Maaren Posted August 8, 2010 Report Share Posted August 8, 2010 if($timestamp <= 0 || $timestamp > time()){ return false; } Varbūt tā? :D Quote Link to comment Share on other sites More sharing options...
briedis Posted August 8, 2010 Report Share Posted August 8, 2010 Nederīgi timestamp ir visi ne-int, kā arī visi negatīvie int :D Patiesībā, to validāciju ir jātaisā pirms konvertēšanas uz timestamp, savādāk, nebūs jēgas. Paga, bet man tak glabājas visi datumi pirms 1970 gada kā negatīvie inti! Man liekas, pietiek ar pārbaudi is_int($timestamp); Quote Link to comment Share on other sites More sharing options...
Леший Posted August 9, 2010 Report Share Posted August 9, 2010 Briedi, ja tu kā timestamp izmanto signed int, tad tev pēc Tue, 19 Jan 2038 03:14:08 GMT laiks neskaitīsies. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted August 9, 2010 Report Share Posted August 9, 2010 Jācer ka līdz 2038. gadam šim laika skaitlim jau sāks izmantot 64 bitu integeri. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted August 9, 2010 Report Share Posted August 9, 2010 (edited) Šodien "Y2K38 problēma" nu pavisam nav aktuāla... Bet pēc tiem 28 gadiem ne tādi vien datori būs, ka 64 biti liksies kaut kas galīgi smieklīgs un aizvēsturisks. Visi sēdēs uz pāris MiquB arhitektūras PC, haha. Edited August 9, 2010 by Kavacky Quote Link to comment Share on other sites More sharing options...
Maris-S Posted August 9, 2010 Report Share Posted August 9, 2010 Tur cik lasīts time_t pāriešanai uz 64 bitiem ir dažas problēmas, tas varētu būt nesavietojams ar pašreizējām sistēmām, ja pareizi esmu sapratis, tā jau 64 bitu sistēmas tagad ir pieejamas, bet to īsti nevar izmantot timestampam. Bet nu līdz 2038. gadam pietiekoši laika to atrisināt. Quote Link to comment Share on other sites More sharing options...
Леший Posted August 9, 2010 Report Share Posted August 9, 2010 Tehniski nekādās problēmas nav, faktiski - problēmu sagāda sistemu skaits. Lai pārvestu visās sistēmas uz 64bit time_t, vajag vai nu ļoti daudz cilvēkresursu, vai nu daudz vairāk, kā 28 gadi. Quote Link to comment Share on other sites More sharing options...
briedis Posted August 9, 2010 Report Share Posted August 9, 2010 Nez, kas tās būs par sistēmām, kas būs izdzīvojušas 20+ gadus :)) Quote Link to comment Share on other sites More sharing options...
Леший Posted August 9, 2010 Report Share Posted August 9, 2010 (edited) Nez, kkādas pretrakešu vairogsistēmas reti apdeito. Edited August 9, 2010 by Леший Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 9, 2010 Report Share Posted August 9, 2010 Nez, kkādas pretrakešu vairogsistēmas reti apdeito. gigi.. jaa jaa.. tas nu ir sistemas ko apdeito seviskji reti... ---------- Bet vispar nav ja liegts pariet no Int uz BigInt .. pilniiba neredzu nekadu probzu .. -- Un ja par validaciju tad timestamp .. ir un paliek timeStamp ( laika ziimogs, nevis datuma glabasanas formats) Quote Link to comment Share on other sites More sharing options...
Леший Posted August 10, 2010 Report Share Posted August 10, 2010 Grey_Wolf, atklāšu tev noslēpumu, tikai nevienam nestāsti: izņēmot skripta valodas ar preprocesoriem, eksistē arī sakompilēti softi, kā arī, softi, kas dzelziski ierakstīti čipos. Nerunājot jau par čipiem, kuros arhitektūra izmanto timestamp. Visos šos variantos pāreja uz bigint maigi izsākoties, apgrūtināta. 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.