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.
Waszym zdaniem:
Nikt jeszcze nie dodał swojego komentarza. Możesz być pierwszy!