Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
serglif 06.06.2005 09:44
Кусок вот отсюда# Разбираем строку регулярным выражением, если не разбирается - ошибка по формату $tmp[^string_date.match[^^\s*(?:(\d{4,5})(?:\s*^$|(?:-(\d{1,2})(?:\s*^$|(?:-(\d{1,2}))))))?(?:\s*^$|(?:\s+|^^)(?:(\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:\.(\d{1,3}))?)?)?\s*^$))][']] ^if(!def $tmp.match){^throw[cdate:create;invalid_date_format;'$string_date' is not valid date]} # Раскидываем по переменным $year(^tmp.1.int($nowdate.year)) $month(^if(def $tmp.2){^tmp.2.int(1)}{^if(def $tmp.1){1}{$nowdate.month}}) $day(^if(def $tmp.2){^tmp.3.int(1)}{^if(def $tmp.1){1}{$nowdate.day}}) $hour(^tmp.4.int(0)) $minute(^tmp.5.int(0)) $second(^tmp.6.int(0)) $ms(^tmp.7.int(0))разбирает все варианты, которые разбирает Parser-овский ^date::create[].