Вы можете получить относительных форматов даты, чтобы получить первый и последний дни текущего месяца
$firstDay = new DateTime('first day of this month');
$lastDay = new DateTime('last day of this month');
$result = array(
'date_paid' => $firstDay->format('Y-m-d') . '...' . $lastDay->format('Y-m-d')
);
Мне не совсем понятно, о чем вы спрашиваете здесь, может быть, вы могли бы предоставить немного больше информации о том, что Вы подразумеваете под исключениями слишком низкий уровень? Неужели сами сообщения об ошибках непонятны?
Класс SaxParseException имеет методы getColumnNumber () и getLineNumber (), которые вы можете представить пользователю, чтобы заставить их исправить ошибки.
Одна вещь, которую вы могли бы Эксперимент с использованием различных реализаций синтаксического анализа XML - каждый синтаксический анализатор выдаст ошибку, когда обнаружит недействительный код, но разные реализации могут иметь разные сообщения об ошибках и цепочки исключений.
На самом деле, по этой причине я сомневаюсь в попытке создайте библиотеку, которая проверяет цепочку исключений и пытается создать из нее более связное сообщение об ошибке, так как вы '
Brabster Я тоже столкнулся с аналогичной проблемой, когда мне нужно было сказать, для какого элемента в xml возникла ошибка. Я немного решил проблему, сохранив стек в моем обработчике SAX Parser. В методе startElement я помещаю qName (имя элемента) в стек, а в методе endElement я извлекаю qName из стека.
Каждый раз, когда возникает исключение, мой стек представляет полный XPath элемента.
Единственная проблема заключалась в том, что если есть несколько элементов с одинаковым именем, вы не знаете, для какого элемента ошибка. Но, по крайней мере, все детали XPath помогли вместе с LineNumber и ColumnNumber.
Надеюсь, это поможет.