интересно, что ошибку не получается перехватить в конструкции
try {
$formatter->format($time);
} catch (Exception $e) {
}
объект создаётся так:
$formatter = new IntlDateFormatter(
$locale,
IntlDateFormatter::SHORT,
IntlDateFormatter::SHORT,
$timezone // временнАя зона должна быть задана корректно
);
РЕШЕНИЕ:
сделать проверку можно таким образом.