bobsters Posted January 25, 2012 Report Share Posted January 25, 2012 (edited) Lieta tāda! Ja piemēram es ievadu convert_month("01",1) tad vins pareizi izvada ka ir "Janvāris", bet kad pamainu uz convert_month("Februāris",0) tad vins tapat izvada Februaris, bet kad ieraksts convert_month("Janvāris",0) vins izvada ka ir 01-ais menesis! nevaru saprast kur ir kluda! function convert_month($month,$type=1){ $month_w=array("Janvāris"=>"01", "Februāris"=>"02", "Marts"=>"03", "Aprīlis"=>"04", "Maijs"=>"05", "Jūnijs"=>"06", "Jūlijs"=>"07", "Augusts"=>"08", "Septembris"=>"09", "Oktobris"=>"10", "Novembris"=>"11", "Decembnris"=>"12"); $month_cipariem=array("01"=>"Janvāris", "02"=>"Februāris"); if ($type==1){ foreach($month_w as $menesis=>$menesis_skaitlis) { return str_replace($menesis_skaitlis,$menesis,$month); } } else { if ($type==0) { foreach ($month_cipariem as $menesis_cip=>$menesis_v) { return str_replace($menesis_v,$menesis_cip,$month); } } } } P.s. saprotu ka iespejams eju no Rigas uz jurmalu caur Daugavpili, bet tomer - neko nevar iemacities ja nedari un nekludies! Tapec vnk gribu saprast kapec vins sadus pekstinus dara! Un visticamākais ir tas ka kļūda ir man acu priekšā,tikai es to nevaru saskatīt :( Edited January 25, 2012 by bobsters Quote Link to comment Share on other sites More sharing options...
briedis Posted January 25, 2012 Report Share Posted January 25, 2012 function getMonthName($month){ $months = array( "Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris" ); if(is_numeric($month)){ return array_key_exists($month - 1, $months) ? $months[$month - 1] : false; } //Ja ir vārdisks, atgriežam skaitlisko $month = mb_strtolower(trim($month), "utf-8"); foreach($months as $key => $item){ $item = mb_strtolower($item, "utf-8"); if($item === $month){ return $key + 1; } } return false; } Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 25, 2012 Author Report Share Posted January 25, 2012 (edited) Paldies! es jau pats beigas sapratu, ka viņš izvada tikai pirmo pareizu! pārējo visu atkārto! Bet nepaspēju forumā uzrakstīt, ka problēma atrisināta :) Tagad palabosu skriptu! Un tad velak padosu apskatei un kritikai :) Edited January 25, 2012 by bobsters Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 26, 2012 Author Report Share Posted January 26, 2012 (edited) Nu tad beidzot esu pabeidzis savu Konvertacijas Funkciju! Nododu apskatei! Iespejams ka daudzi uzskatis ka tas nav bijis vajadzigs - tomer man tas bija trenins! Skaitisanu ievietoju funkcija jo izmantojos date(m) tiek padots menesis ka 01 utt bet array indexi nesakas ar 0 (ka jau zinat) tad lidz ar to tas tiek parbaudits vai skaitlis nesakas ar 0 - ja sakas tad tas tiek atmests! Velak japalabo un japieliek klat vel sadalas ka konvertejot uz skaitli ja nepieciesams vins pievieno 0 klat function convert_month($month,$type=1,$addzero=0){ $menesis=array("Janvāris","Februāris","Marts","Aprīlis", "Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris", "Novembris","Decembris"); if ($type==1){ //parbauda vai skaitlis ir divciparu if (strlen($month)==2){ //ja skaitlis ir divciparu skaitlis tad nakosais //kas tiek parbaudits ir tas vai skaitlis nesakas ar nulli //jo pie date('m') tiek izvadits 01-ais menesis utt if (strstr($month,"0")==TRUE){ //ja skaitlis tomer sakas ar nulli tad //atmetam pirmo skaitli un paliek 1 $month=substr($month,1,1); //atgriezam menesa vertibu //cerams ka pasi saprotat kapec ir $month-1 //ja ne tad parbaudiet return $menesis[$month-1]; } else { //ja nav atrasta pirma nulle tad izvadam menesi return $menesis[$month-1]; } } } // un te parveidosim atpakal uz vārdisko vertibu if ($type==0){ $month=array_search($month,$menesis); return $month+1; } } //echo convert_month("Janvāris",0); //echo "<br>"; echo "01 - ".convert_month("01",1); echo "<hr><br>"; echo "Februāris - ".convert_month("Februāris",1); echo "<hr><br>"; echo "Februāris - ".convert_month("Februāris",0); echo "<hr><br>"; echo "09 - ".convert_month("09",1); echo "<hr><br>"; echo "12 - ".convert_month("12",1); echo "<hr><br>"; ?> Edited January 26, 2012 by bobsters Quote Link to comment Share on other sites More sharing options...
briedis Posted January 26, 2012 Report Share Posted January 26, 2012 Pametīšu domu. $i = (int)"01"; $i ir 1 $i = (int)"05"; $i ir 5 $i = (int)"Janvāris"; $i ir 0 $i = (int)"Marts" $i ir 0 Quote Link to comment Share on other sites More sharing options...
bobsters Posted January 26, 2012 Author Report Share Posted January 26, 2012 Pametīšu domu. $i = (int)"01"; $i ir 1 $i = (int)"05"; $i ir 5 $i = (int)"Janvāris"; $i ir 0 $i = (int)"Marts" $i ir 0 Mja tiešām smieklīgi! Tā biju aizrāvies ka par to nemaz neiedomājos :D loti daudzas rindinas liekas :D Bet tomer - prakse izmantot! Kad kaut kur citur vajadzēs izmantot tad būs vieglāk :D Quote Link to comment Share on other sites More sharing options...
briedis Posted January 26, 2012 Report Share Posted January 26, 2012 Pārkonvertē mēnesi uz skaitli ar (int), pārbaudi - ja tas ir "0" tad mēnesis visdrīzāk bija vārdisks. Ja skaitlis ir >=1 un <= 12, tad tas ir kārtas skaitlis. Tad attiecīgi tik paņem no masīva vai pēc indeksa, vai ej cauri masīvam un meklē vārdisko mēnesi. Tikai nemaizmirsti pataisīt vienādā reģistrā - piemēram, mazajiem burtiem, jo "Janvāris" !== "JANVĀRIS" 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.