Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Fromatowanie dat a kodowanie
Aztech
post 19.04.2009, 11:42:01
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Przejrzałem artykuł scannera dotyczący formatowania daty oraz kilka postów. W części z nich doradzają aby dodać do setlocale tekst 'UTF8' bądź 'UTF-8' jeśli chcemy uzyskać wynikowy tekst z strftime w tym kodowaniu.
Mi niestety nie udało się tego uzyskać przy użyciu tych rad, w przypadku dodania ciągów z UTF, mam formatowanie po angielsku. co oznacza, że nie rozpoznał polskiego kodowania. Bez UTF-8 mam zwracany tekst w kodowaniu ISO-8859-2. Poradziłem sobie na razie w poniższy sposób. Pytanie, w jaki sposób powinienem zmienić setlocale, abym nie musiał używać mb_convert_encoding?
  1. <?php
  2. $arrLocale=array( "pl_PL", "polish_pol" );
  3.    setlocale(LC_ALL, $arrLocale );
  4.    $date=date_parse($this->date);
  5.    $fdate=strftime($format,mktime($date['hour'],$date['minute'],$date['second'],$date['month'],$date['day'],$date['year']));
  6.    return mb_convert_encoding($fdate,'UTF-8','ISO-8859-2');
  7. ?>


P.S. Mój system to Windows, client: XAMPPLITE. Docelowo strona będzie na serwerze linuxowym.
Go to the top of the page
+Quote Post
DREEMus
post 19.04.2009, 16:00:52
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Też miałem z tym problem, i żadne możliwość dodanie "UTF8" czy "UTF-8" powodowała angielskojęzyczne nazwy dni, czy miesięcy ...
  1. <?php
  2. // zrób print_r
  3. print_r ( $_SERVER ); // albo $_ENV
  4. ?>

na dwóch maszynach i poszukaj na którejś np. typu procesora, na tej podstawie zrób sobie "IF"
mój przykład ...
  1. <?php
  2. function data () {
  3.    setlocale ( LC_ALL, 'polish' );
  4.    $dzien = strftime ( '%A' );
  5.    $data = strftime ( '%d %B %Y' );
  6.    $czas = date ( 'H:i' );
  7.  
  8.    # wybieramy system ...
  9.    if ( $_ENV['PROCESSOR_ARCHITECTURE'] == 'x86' ) {
  10.        $kodowanie = 'CP1250';
  11.        } else {
  12.            $kodowanie = 'ISO-8859-2';
  13.            }
  14.    echo 'Dziś jest ' . iconv ( $kodowanie, 'UTF-8', '<b>'.$dzien.'<br />'.$data.'</b> &nbsp; <b>'.$czas.'</b>' );
  15.    }
  16. ?>


Ten post edytował DREEMus 19.04.2009, 16:04:25


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 08:01