有人知道为什么这个函数,当传递一个无效的日期(例如时间戳)给它时,仍然抛出一个错误,尽管try-catch
?
function getAge($date){
try {
$dobObject = new DateTime($date);
$nowObject = new DateTime();
$diff = $dobObject->diff($nowObject);
}
catch (Exception $e) {
echo 'Error: ', $e->getMessage();
}
return $diff->y;
}
错误:
致命错误:未捕获的异常'异常'与消息'DateTime::_construct()[datetime.-构造]:未能解析时间字符串(422926860)在位置7(6):意外字符'在...... php: 4堆栈跟踪:#0...... php(4):日期时间
提前非常感谢!
克里斯,你抓不到致命的错误,至少你不应该。
引用凯帕罗的话:
PHP不会为您提供任何捕获致命错误的常规方法,因为它们确实不应该被捕获。也就是说,您不应该尝试从致命错误中恢复。与输出缓冲区匹配的字符串肯定是不明智的。
如果你没有别的办法,请看这篇文章,了解更多信息和可能的操作方法。
试试这个:
function isDateValid($str) {
if (!is_string($str)) {
return false;
}
$stamp = strtotime($str);
if (!is_numeric($stamp)) {
return false;
}
if ( checkdate(date('m', $stamp), date('d', $stamp), date('Y', $stamp)) ) {
return true;
}
return false;
}
然后呢:
if isDateValid( $yourString ) {
$date = new DateTime($yourString);
}
问题内容: 我的Java JMS有一个不稳定的问题。暂时可以正常工作,但是会不正常地抛出以下异常并减少执行。 重要的是要注意,这种情况不会停止经纪人。 问题答案: 我认为ActiveMQ 可能是 这个问题:https : //issues.apache.org/jira/browse/AMQ-2902 此问题跟踪程序线程表示它是无害的(这只是一个嘈杂的INFO级别日志消息),并且已在ActiveM
本文向大家介绍PHP异常处理Exception类,包括了PHP异常处理Exception类的使用技巧和注意事项,需要的朋友参考一下 异常(Exception)用于在指定的错误发生时改变脚本的正常流程。 什么是异常? PHP 5 提供了一种新的面向对象的错误处理方法。 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。 当异常被触发时,通常会发生: 当前代码状态被保存
我有字符串值 是否有任何可用的函数或有效的方法将这个JSON字符串转换成Java DateTime对象,而不是一个接一个地读取字段并构建我的对象? 谢谢
昨天我在一个网站上工作,我们将使用。它工作得很好等等。然而,当我现在启动它,我得到一个错误... 我们从另一个网站获得信息,该网站发布的日期如下: 2016-30-24T11:30:00.000 01:00 然而,我们只想展示: 11:30:00 小时、分钟和秒。 我们采用以下方法: 这是昨天的工作,但现在我得到以下错误: 致命错误:未捕获异常'异常'与消息'DateTime::__constru
我正在php中创建一个非常简单的注册表单,当前当用户尝试注册时,将弹出一个带有succes或fail消息的javascript警报。 现在,我想捕获sql异常,以显示用户名或电子邮件是否已经在数据库中执行,而不是标准的失败消息。 这是我目前拥有的代码: 我如何检查是否电子邮件或用户名已经在数据库中?这两个变量在数据库中都是唯一的。
我在输出在文件中创建的日期时遇到问题。 我一直在遵循一个关于如何创建真正基本的CMS平台的教程,帮助我了解和的一些基础知识,在我试图输出页面创建日期之前,一切都进展顺利。 这就是我得到的错误 现在,当我删除我的中的第22行时,它输出数据库中的完整日期,即,但我试图格式化它以显示像. 这是我的文件中的代码 然后在我的在我显示这个的地方,我有这个代码来格式化日期。 现在从我的中删除这个不会做任何事情,