【问题标题】:PHP fatal-errorPHP 致命错误
【发布时间】:2012-12-08 20:45:08
【问题描述】:

完全错误:

Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct()
[<a href='datetime.--construct'>datetime.--construct</a>]: Failed to parse time
string (Next log in) at position 0 (N): The timezone could not be found in the
database' in /home/bd92/public_html/login.php:144 Stack trace:
#0 /home/bd92/public_html/login.php(144): DateTime->__construct('Next log in')
#1 {main} thrown in /home/bd92/public_html/login.php on line 144

此错误发生在这一行:

$unbanned = new Datetime($dbunbanned);

它进入数据库,并在用户被解禁时获取。

然后它会生成一个日期时间,以便我可以将其与当前日期进行比较,并查看禁令是否已过期,但我收到此错误。

【问题讨论】:

  • 当这个错误被触发时,你可能应该说 $dbunbanned 是什么。更好的是,您应该能够将您的代码缩减为重现问题的非常短的测试用例。然后你可以询问你的测试用例。
  • 这里设置,以及其他一些东西: $row = mysql_fetch_assoc($query); $dbid = $row['user_id']; $dbpass = $row['密码']; $dbuser = $row['用户名']; $dbbanned = $row['banned']; $dbbanreason = $row['banreason']; $dbunbanned = $row['unbannedon'];然后查询: $query = mysql_query("SELECT * FROM users WHERE username='$user'");
  • 不,你不需要数据库来重现这个。错误消息告诉您new DateTime 调用失败。

标签: php fatal-error


【解决方案1】:

使用DateTime 类时,您必须提供默认时区。否则,您将收到致命错误。

date_default_timezone_set('America/New_York');

【讨论】:

  • 你是在调用 datetime 类之前添加的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2018-05-26
  • 1970-01-01
相关资源
最近更新 更多