Date()

11 отговора 484 прегледа
#1

Date()

Искам да изкарам на екрана текущата дата по следния начин (примерно): "понеделник 02.09.2003 г."
Какъв формат се използва за кирилицата ?

Някой би ли ми написал примерния код

Благодаря Ви предварително !

Отговор
в отговор на Source #2

Re: Date()

Date функцията няма кирилица. Трябва сам да си напишеш една функция която да сменя Monday с Понеделник

Отговор
в отговор на $burov #3

Re: Date()

Благодаря !

Отговор
в отговор на Source #4

Re: Date()

function dateTranslated ($dateFormat, $lang, $defLang) {
if ((strspn($lang, "en")<2) && (strspn($lang, "es")<2) && (strspn($lang, "fr")<2) && (strspn($lang, "se")<2) && (strspn($lang, "de")<2)) $lang = $defLang;
if ($lang == strstr($lang, "bg")) {
$DayLong = array('Неделя' => '', 'Monday' => 'Понеделник', 'Tuesday' => 'Вторник', 'Wednesday' => 'Сряда', 'Thursday' => 'Четвъртък', 'Friday' => 'Петък', 'Saturday' => 'Събота');
$monthLong = array('January' => 'Януари', 'February' => 'Февруари', 'March' => 'Март', 'April' => 'Април','May' => 'Май', 'June' => 'Юни', 'July' => 'Юли', 'August' => 'Август', 'September' => 'Септември', 'October' => 'Октомври', 'November' => 'Ноември', 'December' => 'Декември');
$dayShort = array('Sun' => 'Нед', 'Mon' => 'Пон', 'Tue' => 'Вт', 'Wed'=>'Ср', 'Thu' => 'Чет', 'Fri' => 'Пет', 'Sat' => 'Сб');
$monthShort = array('Jan' => 'Ян', 'Feb' => 'Фев', 'Mar' => 'Mт', 'Apr' => 'Aпр','May' => 'Maй', 'Jun' => 'Юни', 'Jul' => 'Юли', 'Aug' => 'Авг', 'Sep' => 'Сеп', 'Oct' => 'Oкт', 'Nov' => 'Ноем', 'Dec' => 'Дек');
}
$daTime = time();
if ((! $lang) || (strncmp($lang, "en", 2)>1)) $lang = "en";
if (! $dateFormat) { if ($lang== "en") $dateFormat = "F, l j Y - H:i:s"; else $dateFormat = "l j F Y - H:i:s"; }
$daDate = date($dateFormat, $daTime);
if (preg_match("/F/", $dateFormat) && (strspn($lang, "en")<2)) {
$daDefaultFormat = date("F", $daTime);
$replace = $monthLong[date("F", $daTime)];
$daDate = preg_replace("/$daDefaultFormat/", $replace, $daDate);
}
if (preg_match("/l/", $dateFormat) && (strspn($lang, "en")<2)) {
$daDefaultFormat = date("l", $daTime);
$replace = $DayLong[date("l", $daTime)];
$daDate = preg_replace("/$daDefaultFormat/", $replace, $daDate);
}
if (preg_match("/M/", $dateFormat) && (strspn($lang, "en")<2)) {
$daDefaultFormat = date("M", $daTime);
$replace = $monthShort[date("M", $daTime)];
$daDate = preg_replace("/$daDefaultFormat/", $replace, $daDate);
}
if (preg_match("/D/", $dateFormat) && (strspn($lang, "en")<2)) {
$daDefaultFormat = date("D", $daTime);
$replace = $dayShort[date("D", $daTime)];
$daDate = preg_replace("/$daDefaultFormat/", $replace, $daDate);
}
return $daDate;
}

Отговор
в отговор на JQ #5

Re: Date()

Аз го направих със Switch - Case
по удобно и прегледно ми се струва !

Отговор
в отговор на Source #6

ехее:))

какви са тея switch-ove :))
<?php
setlocale(LC_TIME,'bg_BG');
echo strftime('%A %d.%m.%Y г.');
?>

Отговор
в отговор на null #7

Re: ехее:))

Варианта за България няма да работи под Windows:


[линк]

Редактирано от $burov на

Отговор
в отговор на $burov #8

?

що да не драсне функция bgdate (), която да приема параметри същите като на date, вътре да изпълнява date функцията и след това с strtr да превежда резултата - (стринговете вътре - Monday=> Понеделник ... )

Отговор
в отговор на я #9

Re: ?

Това ми беше първоначалната идея. Аз въобще не знаех за тази възможност:

<?php
setlocale(LC_TIME,'bg_BG');
echo strftime('%A %d.%m.%Y г.');
?>

Но това работи само на линукския сървър в интернет. На локалхост с Win98 се проваля и връща всичко на английски.

Отговор
в отговор на Source #10

Re: Date()

Ето ти една идея, може да си го направиш за ден, за език, за каквото искаш:

function getMonthName ($month) {
$months = array();
$months[1] = 'January';
$months[2] = 'February';
$months[3] = 'March';
$months[4] = 'April';
$months[5] = 'May';
$months[6] = 'June';
$months[7] = 'July';
$months[8] = 'August';
$months[9] = 'September';
$months[10] = 'October';
$months[11] = 'November';
$months[12] = 'December';

return $months[$month];
};


---
"Внимавай какво правиш през живота си, защото смъртта е вечна и не знаеш какво те очаква ..."
Отговор
в отговор на $burov #11

Re: ?

Локалните са готини, но аз никъде не намерих документация за това как да ги обърна на Български!

Отговор
в отговор на krayzie #12

Re: ?

Ама то на български си излиза! Обаче ти трябва линукс сървър.

Отговор