[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дата прописью
Gradus
Нужно перевести дату в прописной вид и в падеже основное что нужно перевести это год.Вот пример
//
25.03.2008 -> двадцать пятое марта двух тысяча восьмого года
25.03.2000 -> двадцать пятое марта двух тысячного года
25.03.1980 -> двадцать пятое марта тысяча девятьсот восьмидесятого года
\\
есть ли у кого такой скриптик,поделитесь ? самому писать не охото долго...

p.s. да простят меня учителя по русскому smile.gif

_____________
ДАВАЙ ДЕНЬГИ
R543264623869
Basili4

Дата прописью function Monthstr(S: tdatetime): string;
function Monthstr(S: tdatetime): string;
функция преобразования даты (тип tdatetime) в строку (string)
function Monthstr(S: tdatetime): string;
const
Mes: array[1..12] of string = ('января', 'февраля', 'марта', 'апреля',
'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября',
'декабря');
var
Year, Month, Day: Word;
begin
try
// пр-ка правильности ввода даты
DecodeDate(S, Year, Month, Day);
Result := ''+IntToStr(day);
Result := Result + ' ' + Mes[Month];
Result := result + ' ' + IntToStr(Year) + ' года';
except
raise
Exception.Create('"' + datetostr(s) + '"' + ' - такой даты нет!');
end;
end;


Это конечно не php но понять что делает и переписать 1 минута времени

_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Gradus
Basili4, прочитай пожалуйста топик внимательно

_____________
ДАВАЙ ДЕНЬГИ
R543264623869
Basili4
опа. поспешил sad.gif

_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
phz
Как бы не то... но может будет интересно http://vremenno.net/js/js-snippet-declensi...and-adjectives/
FatCat
Цитата (Gradus @ 24.05.2010 - 16:13)
двух тысяча

Как-то не по-русски.

_____________
Бесплатному сыру в дырки не заглядывают...
chee
Столкнулся с такой же задачей, ответа в рунете на нёё нет, точнее я не нашел, в итоге был написан работающий вариант, качеством не отличается, но всё таки.


function date2str($date)
{
if (empty($date)) {
return '';
}

$thousands = array(
1 => 'одна тысяча',
2 => 'две тысячи',
);


$hundreds = array(
0 => '',
9 => 'девятьсот',
);


$days = array(
1 => 'первое',
2 => 'второе',
3 => 'третье',
4 => 'четвертое',
5 => 'пятое',
6 => 'шестое',
7 => 'седьмое',
8 => 'восьмое',
9 => 'девятое',
10 => 'десятое',
11 => 'одиннадцатое',
12 => 'двенадцатое',
13 => 'тринадцатое',
14 => 'четырнадцатое',
15 => 'пятнадцатое',
16 => 'шестнадцатое',
17 => 'семнадцатое',
18 => 'восемнадцатое',
19 => 'девятнадцатое',
20 => 'двадцатое',
30 => 'тридцатое',
40 => 'сороковое',
);


$tens = array(
20 => 'двадцать',
30 => 'тридцать',
40 => 'сорок',
);


foreach ($tens as $d => $ten) {
for ($day = 1; $day < 10; $day++) {
$days[$d + $day] = $ten . ' ' . $days[$day];
}
}


$months = array(
0 => 'нулября',
1 => 'января',
2 => 'февраля',
3 => 'марта',
4 => 'апреля',
5 => 'мая',
6 => 'июня',
7 => 'июля',
8 => 'августа',
9 => 'сентября',
10 => 'октября',
11 => 'ноября',
12 => 'декабря',
);


list($year, $month, $day) = explode('-', $date);

$monthStr = $months[(int)$month];
$dayStr = $days[(int)$day];

$yearPart = $days[(int)mb_substr($year, -2)];
$endYear = mb_substr($yearPart, -2);

switch ($endYear) {
case 'ое':
$yearPart = mb_substr($yearPart, 0, -2) . 'ого';
break;
case 'ье':
$yearPart .= 'го';
break;
}

$yearParts = array(
$thousands[(int)$year[0]],
$hundreds[(int)$year[1]],
$yearPart
);

$yearStr = implode(' ', array_filter(array_map('trim', $yearParts)));

return implode(' ', array($dayStr, $monthStr, $yearStr));
}

использование

echo date2str('2014-12-25');


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.