Polska data w PHP

Autor: Tomasz Jędrzejewski
Data publikacji: 16.01.2007, 14:12

Funkcja date() zawsze zwraca nazwy miesiÄ™cy i dni tygodnia po angielsku. Do formatowania daty można także użyć strftime() wykorzystujÄ…cej nieco inny format daty. Jest ona wrażliwa na aktualne locale, tj. po odpowiednim skonfigurowaniu ustawieÅ„ lokalnych potrafi wyÅ›wietlać polskie nazwy miesiÄ™cy. Problem w tym, że użyte w dacie, powodujÄ… powstanie błędu gramatycznego: prawidÅ‚owÄ… formÄ… jest np. 15 stycznia 2007, a nie 15 styczeÅ„ 2007. Tu musimy już samodzielnie napisać sobie odpowiedniÄ… funkcjÄ™. Poniżej przedstawiona jest nakÅ‚adka na strftime(), która dodaje do niej kod %F reprezentujÄ…cy nazwÄ™ polskiego miesiÄ…ca w dopeÅ‚niaczu.

<?php
        
        function localStrftime($format, $timestamp = 0)
        {
                if($timestamp == 0)
                {
                        // Sytuacja, gdy czas nie jest podany - używamy aktualnego.
                        $timestamp = time();
                }
 
                // Nowy kod - %F dla odmienionej nazwy miesiÄ…ca
                if(strpos($format, '%F') !== false)
                {
                        $mies = date('m');
                        
                        // odmienianie
                        switch($mies)
                        {
                                case 1:
                                        $mies = 'stycznia';
                                        break;
                                case 2:
                                        $mies = 'lutego';
                                        break;
                                case 3:
                                        $mies = 'marca';
                                        break;
                                case 4:
                                        $mies = 'kwietnia';
                                        break;
                                case 5:
                                        $mies = 'maja';
                                        break;
                                case 6:
                                        $mies = 'czerwca';
                                        break;
                                case 7:
                                        $mies = 'lipca';
                                        break;
                                case 8:
                                        $mies = 'sierpnia';
                                        break;
                                case 9:
                                        $mies = 'września';
                                        break;
                                case 10:
                                        $mies = 'października';
                                        break;
                                case 11:
                                        $mies = 'listopada';
                                        break;
                                case 12:
                                        $mies = 'grudnia';
                                        break;                  
                        }
                        // dodawanie formatowania
                        return strftime(str_replace('%F', $mies, $format), $timestamp);         
                }
                return strftime($format, $timestamp);   
        } // end localStrftime();
        
        echo localStrftime('%d %F %Y');
 
?>

Na końcu skryptu podane jest przykładowe użycie.

Ostatnia modyfikacja: 16.01.2007, 14:12

Waszym zdaniem:

Nikt jeszcze nie dodał swojego komentarza. Możesz być pierwszy!


Twoim zdaniem:

Reklama

banner

Partnerzy

CityDesign.pl
phpSolutions