Programowanie w języku PHP » FAQ

Polska data w PHP

  • 2007-01-29 19:18
  • 7 komentarzy
  • 2090 odsłon
  • Oceń ten tekst jako pierwszy
Prosty skrypt, ktory tłumaczy timestampa (jako parametr) na polską datę. Dodatkowo dodaje słowo 'dzisiaj' na początku (jeśli tam pasuje :-) )

  //----------------------------------------------------
  // Tworzy dluga date
  //----------------------------------------------------
 
  function MakeDate($s) {
    if (date("l, d F Y", $s) == date("l, d F Y", time())) { $today = true; }
 
    if ($today) {
      $date = 'Dzisiaj' . date(", d F Y, G:i:s", $s);
    } else {
      $date = date("l, d F Y, G:i:s", $s);
    }
 
    $date = str_replace('Monday', 'Poniedziałek', $date);
    $date = str_replace('Tuesday', 'Wtorek', $date);
    $date = str_replace('Wednesday', 'Środa', $date);
    $date = str_replace('Thursday', 'Czwartek', $date);
    $date = str_replace('Monday', 'Piątek', $date);
    $date = str_replace('Saturday', 'Sobota', $date);
    $date = str_replace('Sunday', 'Niedziela', $date);
 
    $date = str_replace('January', 'Stycznia', $date);
    $date = str_replace('February', 'Lutego', $date);
    $date = str_replace('March', 'Marca', $date);
    $date = str_replace('April', 'Kwietnia', $date);
    $date = str_replace('May', 'Maja', $date);
    $date = str_replace('June', 'Czerwca', $date);
    $date = str_replace('July', 'Lipca', $date);
    $date = str_replace('August', 'Sierpnia', $date);
    $date = str_replace('September', 'Września', $date);
    $date = str_replace('October', 'Października', $date);
    $date = str_replace('November', 'Listopada', $date);
    $date = str_replace('December', 'Grudnia', $date);
 
    return $date;
  }


Użycie:

echo(MakeDate(time());


Można też w ten sposób:

function MakeDate($s)
{
        $date = date("l, d F Y, G:i:s", $s);
 
        $date_ang = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Monday', 'Saturday', 'Sunday', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
 
        $date_pl = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela', 'Stycznia', 'Lutego', 'Marca', 'Kwietnia', 'Maja', 'Czerwca', 'Lipca', 'Sierpnia', 'Września', 'Października', 'Listopada', 'Grudnia');
 
        return str_replace($date_ang, $date_pl, $date);
}
- Pawkow

7 komentarzy

Kooba 2007-01-31 20:38

A nie lepiej format daty podawać jako drugi parametr funkcji? Z doświadczenia wiem że tak jest praktyczniej.

Qyon 2007-01-30 15:01

Najprościej chyba ustawić locales, w zależności od języka?

nav 2007-01-29 22:05

A co jeśli ktoś będzie chciał krótką nazwę dnia/miesiąca? W kojocie jest rozwiązanie działające na krótkich i długich nazwach dni/miesięcy.

pawkow 2007-01-29 19:16

function MakeDate($s)
{
$date = date("l, d F Y, G:i:s", $s);

$date_ang = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Monday', 'Saturday', 'Sunday', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

$date_pl = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela', 'Stycznia', 'Lutego', 'Marca', 'Kwietnia', 'Maja', 'Czerwca', 'Lipca', 'Sierpnia', 'Września', 'Października', 'Listopada', 'Grudnia');
 
return str_replace($date_ang, $date_pl, $date);
}


powinno działać...

WeeR 2004-09-12 08:46

Dlaczego to jest w FAQ delphi ?

taipan 2004-06-27 01:26

Zamiast tyle razy używać str_replace można byłoby skorzystać z tablicy:

 $DniAngielskie = array("Monday", "Tuesday", "Wednesday", "Thursday", "Monday", "Saturday", "Sunday");
 $DniPolskie = array("Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
 $date = str_replace($DniAngielskie, $DniPolskie, $date);

To samo z miesiącami. O wiele szybsze i prostsze :)

mejbi 2004-06-29 01:40

A jeszcze prościej można to zrobić w sposób następujący:

$dzien = array('niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota');

$miesiac = array('', 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');

echo 'Dzisiaj jest ' . $dzien[date('w')] . date(', j ') . $miesiac[date('n')] . date(' Y ') . 'roku.';