Hej, wie ktoś jak ustawić polskie nazwy miesięcy i dni tygodnia na Win 10 i XAMPP? Wiem o funkcji setlocale
, ale nie wiem, co do niej wpisać.
0
0
A czytałeś manual chociaż?
0
Czytałem, ale takie coś nie działa. Chyba że coś ominąłem.
setlocale(LC_TIME, 'pl_PL', 'pl'); echo strftime('B');
1
Strasznie stare kiedyś napisałem, ale nadal działa.
Przykładowe użycie, jeżeli kod wklejono do klasy o nazwie DateUtils:
$czas = time();
echo DateUtils::getPolishDateForTime( $czas );
a tu kod:
static function &getPolishDateForTime($time, $includeTime = true, $monthAlone = false)
{
if ($includeTime) $tmp = 'l, j F Y \g\o\d\z\. H:i';
else $tmp = 'l, j F Y';
$d = date($tmp, $time);
return self::polishDate($d, $monthAlone);
}
// Zamienia nazwy angielskich dni tygodnia na polskie
static function &polishDate(&$dateToChange, $monthAlone = false)
{
static $polishMonthForDay = array("January" => "stycznia", "February" => "lutego",
"March" => "marca", "April" => "kwietnia", "May" => "maja", "June" => "czerwca", "July" => "lipca", "August" => "sierpnia", "September" => "września", "October" => "października", "November" => "listopada", "December" => "grudnia");
static $polishMonthAlone = array("January" => "styczeń", "February" => "luty",
"March" => "marzec", "April" => "kwiecień", "May" => "maj", "June" => "czerwiec", "July" => "lipiec", "August" => "sierpień", "September" => "wrzesień", "October" => "październik", "November" => "listopad", "December" => "grudzień");
static $polishDays = array("Monday" => "poniedziałek", "Tuesday" => "wtorek", "Wednesday"=>"środa", "Thursday"=>"czwartek", "Friday"=>"piątek", "Saturday"=>"sobota", "Sunday"=>"niedziela");
while (list ($eng, $pol) = each ($polishDays))
{
$dateToChange = preg_replace("/$eng/i", $pol, $dateToChange);
}
reset($polishDays);
if ($monthAlone)
{
$varName = 'polishMonthAlone';
}
else
{
$varName = 'polishMonthForDay';
}
while ( list ($eng, $pol) = each (${$varName}) )
{
$dateToChange = preg_replace("/$eng/i", $pol, $dateToChange);
}
reset(${$varName});
return $dateToChange;
}