[PHP] Funkcja formatująca datę

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
czarodziej
Posty: 17
Rejestracja: 04 maja 2009, 09:37:05
Płeć: Niewybrana
User Agent: Opera Windows 1680x1050

[PHP] Funkcja formatująca datę

Post autor: czarodziej »

Do formatowania daty używam kodu ze strony:
http://blog.vokiel.com/php-date-polskie ... e-strftime:

Kod: Zaznacz cały

function dateV($format,$timestamp=null){
    $to_convert = array(
        'l'=>array('dat'=>'N','str'=>array('Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota','Niedziela')),
        'F'=>array('dat'=>'n','str'=>array('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzień')),
        'f'=>array('dat'=>'n','str'=>array('stycznia','lutego','marca','kwietnia','maja','czerwca','lipca','sierpnia','września','października','listopada','grudnia'))
    );
    if ($pieces = preg_split('#[:/.\-, ]#', $format)){
        if ($timestamp === null) { $timestamp = time(); }
        foreach ($pieces as $datepart){
            if (array_key_exists($datepart,$to_convert)){
                $replace[] = $to_convert[$datepart]['str'][(date($to_convert[$datepart]['dat'],$timestamp)-1)];
            }else{
                $replace[] = date($datepart,$timestamp);
            }
        }
        $result = str_replace($pieces,$replace,$format);
        return $result;
    }
} 
Jak ją teraz wykonam

Kod: Zaznacz cały

dateV('j f Y G:i');
//zwróci : 19 paźdz40ern40ka 2010 13:40     
Dlaczego literkę 'i' zamienia mi w nazwie miesiąca na aktualną minutę ??Może ktoś pomóc ??
Dodam że jak wykonam:

Kod: Zaznacz cały

dateV('j f Y');
//zwróci : 19 października 2010    
Dlaczego tak się dzieje ?? :crazy:
Ostatnio zmieniony 20 paź 2010, 15:13:47 przez czarodziej, łącznie zmieniany 2 razy.
przytulanek81
Posty: 115
Rejestracja: 01 wrz 2005, 23:47:47
Lokalizacja: Białystok
Płeć: Mężczyzna
User Agent: Firefox Windows 1152x864
Kontakt:

Re: [PHP] Funkcja formatująca datę

Post autor: przytulanek81 »

Poczytaj komentarze tam pod artykułem, jest wyjaśniona przyczyna
Zapraszamy do strony z opisami do gg www.statusek.xorg.pl/index.html
czarodziej
Posty: 17
Rejestracja: 04 maja 2009, 09:37:05
Płeć: Niewybrana
User Agent: Opera Windows 1680x1050

Re: [PHP] Funkcja formatująca datę

Post autor: czarodziej »

Powiem ci nawet więcej -> już ją naprawili.Ale zauważ że używam już kodu po modyfikacjach,gdzie nie powinno być tego problemu. Mimo to problem dalej jest, więc może ktoś na tym forum go znajdzie.

Oczywiście można to obejść:

Kod: Zaznacz cały

dateV('j f Y ').dateV('G:i')
//zwróci : 19 października 2010 17:40  
Ale to noob'skie rozwiązanie
ODPOWIEDZ