Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
R. Averkov 14.06.2003 15:38 / 14.06.2003 15:41
Класс позволяет преобразовывать DATE(yyyy-mm-dd), TIME(HH:MM:SS) и DATETIME(yyyy-mm-dd HH:MM:SS) в то что нам надо.@sqltrans[sql-all;forma] $sql1[^sql-all.split[ ;h]] $sql-date[$sql1.0] $sql-time[$sql1.1] $dsql[^sql-date.split[-;h]] $tsql[^sql-time.split[:;h]] $year[$dsql.0] #год в формате 2003 $month[$dsql.1] #месяц в формате mm - 01, 10 $day[$dsql.2] #день в формате - 01, 28 $Day[$len[^day.left(1)]^if($len ne 0){$day}{^day.right(1)}] #день в формате 1, 28 $hour[$tsql.0] #час в формате HH - 03, 21 $min[$tsql.1]$sec[$tsql.2] #минуты в формате 01, 56 $Month_r[^switch[$month]{ ^case[01]{января} ^case[02]{февраля} ^case[03]{марта} ^case[04]{апреля} ^case[05]{мая} ^case[06]{июня} ^case[07]{июля} ^case[08]{августа} ^case[09]{сентября} ^case[10]{октября} ^case[11]{ноября} ^case[12]{декабря} }] #месяц текстом в родительном падеже $Month_i[^switch[$month]{ ^case[01]{Январь} ^case[02]{Февраль} ^case[03]{Март} ^case[04]{Апрель} ^case[05]{Май} ^case[06]{Июн} ^case[07]{Июль} ^case[08]{Август} ^case[09]{Сентябрь} ^case[10]{Октябрь} ^case[11]{Ноябрь} ^case[12]{Декабрь} }]#месяц текстом в именительном падежеВ итоге мы получаем исходные данные, которые можем уже преобразовывать как хотим. Для этого добавим к коду следующее:
^switch[$forma]{ ^case[hh:mm]{${hour}:${min}} #выдаст 03:56 ^case[dd.mm.yyyy]{${day}.${month}.${year}} #выдаст 08:06:2003 ^case[DMy]{$Day $Month_r $year} #выдаст 1 июня 2003 ^case[My]{$Month_i $year} #выдаст Июнь 2003 ^case[myformat]{$Day $Month_r $year ^[${hour}:${min}^]} #выдаст 1 июня 2003 [03:56] }Думаю идея ясна. Добавляем в этот switch такие case, которые нужны и потом соответственно вызываем.