(Polski) PHP Date – Polskie nazwy dni i miesięcy. Funkcje date strftime

Sorry, this entry is only available in Polski.

 

Przeczytaj także

Komentarze: 15

Dodaj komentarz »

 
 
 

Bardzo mi się przydała 2 opcja kiedy, właśnie piszę jedno-plikowy panelik admina z bazą w pliku tekstowym, dla kolegi 🙂

 

Reply

 

Hmm, fajne ale. No właśnie ale. Mam coś takiego:

$d = dateV("l, d f Y (d-m-Y) H:i", strtotime($q->data));
echo $d;

Wynik:
Mon01ay, 01 lutego 2010 (01-02-2010) 19:30

Co się dzieje?

 

Reply

 

Na liście znaków oddzielających poszczególne elementy daty nie było uwzględnionego przecinka. Wystarczy linię 7 zamienić z:

if ($pieces = split('[:/. -]', $format)){

Na poniższy kod i powinno być ok:

if ($pieces = split('[:/. -,]', $format)){

Albo zrezygnować z przestarzałej funkcji split i użyć preg_split (jak słusznie zauważył jedre)

Linia 7 po poprawkach (już zaktualizowana w kodzie w treści posta)

if ($pieces = preg_split('#[:/.-, ]#', $format)){
 

Reply

 

dzięki za wstawkę, już się przydała! 🙂

 

Reply

 

Bardzo dziekuje, swietna funkcja, dziala az milo.

 

Reply

 

Jak zauważył użytkownik czarodziej na forum cba.pl w tym wątku , moja funkcja w pewnych przypadkach nie zachowywała się poprawnie.

Wynikało to z zastosowania funkcji str_replace, która potrafi ponownie zmienić już zmieniony ciąg. W związku z powyższym należy zamienić linię 16 z głównego listingu.

// z tego, błędnego rozwiązania:
$result = str_replace($pieces,$replace,$format);
// na poprawione:
$result = strtr($format,array_combine($pieces,$replace));

Zastosowanie poprawionej funkcji:

echo dateV('j f Y G:i');
// zwraca:
// 20 października 2010 22:01

W treść wpisu została (ponownie) poprawiona.

 

Reply

 

Dzięki za świetny artykuł i świetną funkcję!!!

 

Reply

 

W moim przypadku, żeby skrypt działał musiałem poprzedzić backslashem spacje i inne znaki. Tak wygląda mój kawałek kodu, wyświetlający ostatnią datę modyfikacji dokumentu:

echo dateV("l,\ d f Y,\ \g\o\d\z.\ H:i:s", filemtime($_SERVER['SCRIPT_FILENAME']));
// czwartek, 23 lutego 2012, godz. 18:01:18

 

Reply

 

Hej! Świetna robota, ale ja zmieniłem funkcję rozbijającą na
str_split
więc rozdzielanie nie jest potrzebne (choć przecież celowe 😉 )
Dodałem jeszcze sobie rzymskie miesiące do converta:

 'X'=>array(
    'dat'=>'n',
    'str'=>array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII')
),

Jako timestamp przyjmuję datę i ją tłumaczę strtotime-em, kiedy nie jest integerem, a jeszcze zaraz przywalę “+1d”, “-2m” – jako timestamp względem dziś :)))
Szaleć to szaleć!! 🙂

 

Reply

Wacuś Zagłada
 

Proponuję w linii 7:
if( $pieces = preg_split( '#[:/.\-,\s+]#', $format, NULL, PREG_SPLIT_NO_EMPTY ) )
dzięki czemu będzie np. działać notacja:
dateEx( 'l, j f Y, G:i' )
czyli spacje po przecinkach. Wygląda to o wiele czytelniej, niż string pokropiony przecinkami.

A ogólnie bardzo przydatny snippet, dziękuję serdecznie.

 

Reply

Pacer Media Sp. z o. o. | Polskie strony powinny być po polsku
 

[…] od­mie­niona. Mamy 21 li­piec 2014 r. A prze­cież użycie pro­stego kodu, na przy­kład z tej strony roz­wią­zuje pro­blem. Na tej stronie też użyłem sza­blonu an­giel­sko­ję­zycz­nego i […]

 

Reply

 

Bardzo mi się przydało!
Dzięki wielkie!

 

Reply

 

Mnie zastanawia następująca rzecz. Lokalna maszyna wyświetla prawidłowe nazwy miesięcy przy ustawieniu:

date_default_timezone_set('Europe/Warsaw');
setlocale(LC_ALL, 'pl_PL');

{$c.creation_date|date_format:"%d %B %Y, %H:%M"}

Jednak ten sam kod na serwerze produkcyjnym działa inaczej. Czy istnieje jakiś sposób do zmuszenia PHP i funkcji strftime() to właściwego działania?

 

Reply

 

[…] nie odmie­niona. Mamy 21 lipiec 2014 r. A prze­cież uży­cie pro­stego kodu, na przy­kład z tej strony roz­wią­zuje pro­blem. Na tej stro­nie też uży­łem sza­blonu angiel­sko­ję­zycz­nego […]

 

Reply

 

Super robota dzięki !!!

 

Reply

 

Dodaj komentarz

 
(nie będzie publikowany)
 
 
Komentarz
 
 

Dozwolone tagi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
© 2009 - 2018 Vokiel.com
WordPress Theme by Arcsin modified by Vokiel