Эта тема на forum.dklab.ru


Базылев Дмитрий: Красивый формат даты (et "Половина восьмого утра")
Кто - нибудь видел подобный скрипт?
Захотел написать, потом подумал, нужно ли изобретать велосипед?
Вдруг есть.

Навеяно часами Вербариус
Anonymous:
а может не стоит посетителя заставлять крутить педали этого велосипеда?
Базылев Дмитрий:
А может стоит говорить по теме, а не выдавать мне ваши флуктуации?
Базылев Дмитрий:
Получилось что-то такое.

$HoursNames = array(1 => "час", "два часа", "три часа", "четыре часа", "пять часов", "шесть часов","семь часов", "восемь часов", "девять часов", "десять часов", "одиннадцать часов", "двенадцать часов");

$HoursNamesR = array(1 => "первого", "второго", "третьего", "четвертого", "пятого", "шестого", "седьмого", "восьмого","девятого", "десятого", "одиннадцатого", "двенадцатого");

$DigitName = array(0 => "минут", 1 => "одна минута", "две минуты", "три минуты", "четыре минуты","пять минут","шесть минут","семь минут","восемь минут","девять минут");

$DigitNameU = array(1 => "одной","двух","трех","четырех","пяти","шести","семи","восьми","девяти");

$DigitNameD = array(0 => "минут", 1 => "десять", "двадцать","тридцать","сорок","пятьдесят");

$DigitNameT = array(11 => "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать","восемнадцать","девятнадцать");


$Hour=strftime("%I");
$Minutes=strftime("%M");

switch ($Minutes)
{
case 0: $MinStr="".$HoursNames[$Hour]; break;
case 15: $MinStr="Четверть ".$HoursNamesR[$Hour+1]; break;
case 30: $MinStr="Половина ".$HoursNamesR[$Hour+1]; break;
case 40: $MinStr="Без двадцати минут ".$HoursNames[$Hour+1]; break;
case 45: $MinStr="Без четверти ".$HoursNames[$Hour+1]; break;
case 50: $MinStr="Без десяти минут ".$HoursNames[$Hour+1]; break;
default:
$MinStr=$DigitNameD[floor($Minutes/10)]." ".$DigitName[$Minutes%10]." минут ".$HoursNamesR[$Hour+1];

if ($Minutes<10)
{
$MinStr=$DigitName[$Minutes]." ".$HoursNamesR[$Hour+1];
break;
};
if (($Minutes>19)and(($Minutes<50)))
{
$MinStr=$DigitNameD[floor($Minutes/10)]." ".$DigitName[$Minutes%10]." ".$HoursNamesR[$Hour+1];
break;
};
if (($Minutes>10)and(($Minutes<20)))
{
$MinStr=$DigitNameT[$Minutes]." минут ".$HoursNamesR[$Hour+1];
};
if ($Minutes>50) $MinStr="Без ".$DigitNameU[60-$Minutes]." минут ".$HoursNames[$Hour+1]; break;

};

echo $MinStr;
Anonymous:
по скрипту - где "полночь" и "полдень"?
Базылев Дмитрий:
Логичное замечание. Спасибо +)

Эта тема на forum.dklab.ru