当前位置:  开发笔记 > 编程语言 > 正文

这是一个php bug,还是我的timezone/PHP设置有问题?

如何解决《这是一个phpbug,还是我的timezone/PHP设置有问题?》经验,为你挑选了1个好方法。

文件的真实,完整内容:

getMessage();
}

DateTime构造函数接受一个字符串,如果它无法解析它,它应该抛出异常.这运行正常我的本地机器上,但在我的远程服务器中的一个例外没有被捕获(又一遍,我正在使用的try/catch和完全相同的代码):

致命错误:未捕获的异常'Exception',消息'DateTime :: __ construct()[function.DateTime --- construct]:无法解析位置0(l)处的时间字符串(lol):在时区中找不到时区数据库'在/var/www/html/site_com/rez/date.php:9堆栈跟踪:#0 /var/www/html/site_com/rez/date.php(9):DateTime - > __ construct('lol' )第9行/var/www/html/site_com/rez/date.php中抛出#1 {main}

未捕获异常的远程服务器的设置:

PHP版本5.2.5

启用日期日期/时间"Olson"时区数据库版本2007.9时区数据库内部默认时区America/Chicago

指令本地值主值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 no value no value

我的本地设置在哪里工作:

PHP 5.2.10

日期/时间支持已启用"Olson"时区数据库版本0.system时区数据库内部默认时区系统/本地时间

指令本地值主值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 no value no value

在本地,它捕获异常并打印出错误.在date.timezone双方没有任何价值.

也许这只是我内部系统的时区关闭?我的本地方框是Ubuntu而我的遥控器是CentOS,它们可能不一致但是PHP应该不会捕获异常吗?

仅供参考我无法在远程复选框上更新PHP,因为我没有管理员权限.



1> Frankie..:

我的赌注是PHP错误.我知道PHP曾经遇到过捕获构造函数抛出异常的问题,而这似乎就是这里发生的事情.

因为这是一个错误,你的选择是

    更新服务器的PHP版本; 你说这不是一个选择

    使用strtotime()查找日期,如果您需要或想要访问的面向对象的风格DateTime,赶上与错误strtotime()

例如:

getMessage();
}

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有