Реальное, полное содержимое файла:
<?php
error_reporting(E_ALL);
ini_set(display_errors, 'on');
try {
//$x = strtotime('blah');
$x = new DateTime('lol');
} catch ( Exception $e ) {
echo $e->getMessage();
}
Конструктор DateTime принимает строку, которая должна выдавать исключение, если не может его проанализировать. Это нормально работает на моей локальной машине, но на одном из моих удаленных серверов исключение не перехватывается (и снова я am , использующий try / catch и тот же код EXACT):
Неустранимая ошибка: необработанное исключение
«Исключение» с сообщением
DateTime :: __ construct () [function.DateTime --- construct]:
Не удалось проанализировать строку времени (смеется) в
позиция 0 (л): часовой пояс не может
найти в базе данных "в
/var/www/html/site_com/rez/date.php:9
Трассировка стека: # 0
/var/www/html/site_com/rez/date.php(9):
DateTime -> __ construct ('lol') # 1 {main}
брошенный в
/var/www/html/site_com/rez/date.php на
строка 9
Настройки для удаленного сервера, где исключение не перехвачено:
PHP Версия 5.2.5
дата / время включена поддержка
Версия базы данных часовых поясов "Олсон"
2007.9 Внутренняя база данных часовых поясов Часовой пояс по умолчанию Америка / Чикаго
Директива Local Value Master Value
date.default_latitude 31,7667 31,7667
date.default_longitude 35.2333 35.2333
date.sunrise_zenith 90,583333 90,583333
date.sunset_zenith 90,583333 90,583333
date.timezone нет значения нет значения
Мои локальные настройки, где это работает:
PHP 5.2.10
дата / время включена поддержка
Версия базы данных часовых поясов "Олсон"
0.Системная база данных о часовых поясах по умолчанию Часовой пояс системы / местное время
Директива Local Value Master Value
date.default_latitude 31,7667 31,7667
date.default_longitude 35.2333 35.2333
date.sunrise_zenith 90,583333 90,583333
date.sunset_zenith 90,583333 90,583333
date.timezone нет значения нет значения
Локально, он ловит исключение и печатает ошибку. date.timezone
на обоих значениях не имеет значения.
Возможно, отключены только часовые пояса моей внутренней системы? Мой локальный ящик - Ubuntu, а мой пульт - CentOS, они, вероятно, несовместимы, но не должен ли PHP по-прежнему ловить исключение?
К вашему сведению: Я не могу обновить PHP на удаленной машине, поскольку у меня нет прав администратора.