19 March, 2007

Přeformátovaní řetězce datumu - Date to Timestamp and back to Date

Filed under: Php — jersywoo @ 2:58 pm

Občas je potřeba předem definovaný řetězec datumu přeformátovat na jiný datumový řetězec. Pokud máte timestamp (časová razítko) můžete ho předělat na datum pomocí date() dle potřeby. Pokud chcete z datumu udělat timestamp, slouží k tomu funkce mktime(). Konvertovat datum na jiný formát datumu je trochu složité a proto dole uvádím funkci, která by vám mohla ušetřit práci. Našel jsem ji v komentářích na php.net a trochu jsem ji doplnil a opatřil českými popiskami.

První parametr je jasný, vložíte string datumu. V druhém parametru zadáte vstupní formát datumu (v parametru 1) pomocí znakových zkratek uvedených u funkce date(), jiné tam bohužel nenacpete, leda že by jste funkci dále rozšířili (podělte se o kopii v komentářích). Do třetího parametru, který určuje výstupní formát už můžete nacpat znakové zkratky dle libosti.

 

< ?php
// 1 parametr = vstupní řetězec
// 2 parametr = formát vstupního řetězce
// 3 parametr = formát výstupního řetězce
function str2time($strStr, $strPattern = null, $newDate = null){
   // pole časových znaků, viz: http://php.net/date#AEN21898
   $arrCharacters = array(
       'j', // den ,   1 číslice
       'd', // den ,   2 číslice
       'n', // měsíc,  1 číslice
       'm', // měsíc,  2 číslice
       'y', // rok,    2 číslice
       'Y', // rok,    4 číslice
       'G', // hodiny, 1 číslice
       'H', // hodiny, 2 číslice
       'i', // minuty
       's'  // sekundy
   );
   // transformuje časové pole do stringu
   $strCharacters = implode('', $arrCharacters);
   // rozdělí do pole vstupní formát datumu
   $arrDelimiters = preg_split('~['.$strCharacters.']~', $strPattern);
   // pole vstupního formátu zpracuje do stringu
   $strDelimiters = quotemeta(implode('', array_unique($arrDelimiters)));
   // rozdělí do pole vstupní řetězec podle vstupního formátu data
   $arrStr    = preg_split('~['.$strDelimiters.']~', $strStr);
   // rozdělí do pole vstupní formát datumu
   $arrPattern = preg_split('~['.$strDelimiters.']~', $strPattern);
   // zkontroluje jestli jsou shodné vstupní datum a vstupní formát datumu
   if (count($arrStr) !== count($arrPattern)) {
       return false;
   }
   // do nového pole nacpe zadané hodnoty
   $arrTime = array();
   for ($i = 0;$i < count($arrStr);$i++) {
       $arrTime[$arrPattern[$i]] = $arrStr[$i];
   }
   // dělá z dvoučíslicového datumu čtyřčíslový
   if (isset($arrTime['y']) && !isset($arrTime['Y'])) {
       $arrTime['Y'] = substr(date('Y'), 0, 2) . $arrTime['y'];
   }
   // dělá z měsíce v roce bez nuly dvojciferný s nulou
   if (isset($arrTime['n']) && !isset($arrTime['m'])){
      if(strlen($arrTime['n'])< 2 ){
        $arrTime['m']='0'.$arrTime['n'];
      }else{
        $arrTime['m']=$arrTime['n'];
      }
   }
   // dělá ze dne v měsíci bez nuly dvojciferný s nulou
   if (isset($arrTime['j']) && !isset($arrTime['d'])){
      if(strlen($arrTime['j'])< 2 ){
        $arrTime['d']='0'.$arrTime['j'];
      }else{
        $arrTime['d']=$arrTime['j'];
      }
   }
   // dělá z hodiny bez nuly hodinu s nulou
   if (isset($arrTime['G']) && !isset($arrTime['H'])){
      if(strlen($arrTime['G'])< 2 ){
        $arrTime['H']='0'.$arrTime['G'];
      }else{
        $arrTime['H']=$arrTime['G'];
      }
   }
   // když je deklarace prázdná naplní tam současný formát
   foreach ($arrCharacters as $strCharacter) {
       if (empty($arrTime[$strCharacter])) {
           $arrTime[$strCharacter] = date($strCharacter);
       }
   }
   // zkontroluje jestli datum je platný
   if (!checkdate($arrTime['m'], $arrTime['d'], $arrTime['Y'])) {
       return false;
   }
   // vytváří timestamp
   $intTime = mktime($arrTime['H'], $arrTime['i'], $arrTime['s'], $arrTime['m'], $arrTime['d'], $arrTime['Y']);
   $time=date($newDate, $intTime);
   return $time;
}
// příklad
$time = str2time('6-7-08 07:58:02', 'j-n-y H:i:s','Y-m-d H:i');
echo $time;
?>

10 March, 2007

V české verzi Adsense roste konkurence (a ceny)

Filed under: Nezařazeno — jersywoo @ 4:54 pm

Toto je už druhá verze článku psaná v rozmezí 3 týdnů. Jsem uživatel Adsense i Adwords. Nejdříve jsem si všiml , že v Adwords stoupá u některých slov minimální cena pro spuštění kampaně. Což mě pěkně štvalo, protože při odhadu ceny za klik jsem musel nasadit vyšší cenu než jsem chtěl a počkat týden než se reklama proklikala abych mohl maximální cenu snížit na úroveň, kterou jsem byl schopen akceptovat. Nyní zpětně jako uživatel Adsense musím říci, že můj odhad se potvrdil. Na mých sledovaných webech kde zobrazuji Adsense se mi obdržená odměna za klik ztrojnásobila a jsem zase skoro na částkách, které jsem vydělával první měsíc při nasazení Adsense. Také se Vám zvedají ceny? Přivítám komentáře s vlastními zkušenostmi.

9 March, 2007

Fóry měsíce

Filed under: Nezařazeno — jersywoo @ 9:41 pm

Moje milá květinka leží na posteli a kouká v televizi na film “Kameňák” a furt se směje v přestávkách mezi konzumací “džogurta” . Směju se také, ale čtením webu Lamer.cz a rubrice “Nejlepší citace“. Doporučuji jako čtení pro pobavení. Web jsem našel náhodou přes Linkuj.cz. A jeden PHPčkovej vtip:

VIX: “Nevieš nejakú vtipnú funkciu, ktorá by mi mesiac “Mar” skonvertovala na číslo “3″?
Marek: “Viem, strlen()”

8 March, 2007

Inzerce se dobře rozjíždí

Filed under: Nezařazeno — jersywoo @ 4:54 pm

Dneska je to přesně měsíc co jsem spustil inzerci zdarma . A zrovna dnes web překoná hranici návštěvnosti 200 lidí denně. Z rostoucí návštěvnosti mám velkou radost a doufám, že ji mají i návštěvníci. Podle statistik návštěvnosti se optimalizace na města podařila a lidé přicházejí na přesně mířené víceslovné dotazy. S rostoucí návštěvností přibývá každý den inzerátů. Na web se dostane jen asi tak polovina, protože dobrou polovinu inzerátů natvrdo mažu, abych udržel nějakou “jakou-takous” kvalitu inzerátů. Je celkem zdrcující kolik lidi věřící v “Online business system” si myslí, že je to dobrá cesta. Denně jsou schopni vygenerovat desítky inzerátů na práci, pohodlí z domova a hubnutí. Nacpou je do všech měst, do všech kategorií a to je musí stát hodně času, přitom jim jejich inzeráty mažu jedním kliknutím. Kdyby radši věnovali své úsilí plodnějšímu webovému businessu, zbytečně plýtvají svůj, ale také můj čas.

Zpátky od dobrého pocitu k reálným věcem. Do konce týdne bych chtěl udělat jednotlivým kategoriím a městům rss exporty, možnost přidávat k inzerátům fotky a iframe export pro lokální weby měst. Asi je už také na čase konečně začít řešit designovou stránku webu, protože ta červená na bílé se mi zdá nyní s měsíčním odstupem hrozně děsná.