Fatal error: Uncaught exception #39;Exception#39; with message #39;DateTime::__construct(): Failed to parse time string(致命错误:未捕获的异常 Exception 带有消息 DateTime::__construct(): 无法解析时间字符串)
问题描述
我收到这个错误
( ! ) 致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct(): 无法解析位置 0 (0) 处的时间字符串 (06-28-2014 07:43:58):意外字符' 在/Users/matt/Desktop/Likes/forgot/activate.php 第 17 行
( ! ) Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (06-28-2014 07:43:58 ) at position 0 (0): Unexpected character' in /Users/matt/Desktop/Likes/forgot/activate.php on line 17
尝试这样做时
//DB query
$stmt = $con->prepare("SELECT token_created_at from reset WHERE token = :urltoken");
$stmt->bindValue(':urltoken', $_GET['token']);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()) {
$token_created_at = $row['token_created_at'];
}
//Remove after testing
echo $token_created_at;
$my_dt = new DateTime($token_created_at);
//Modify error
$expires_at = $my_dt->modify('+1 hour');
//Return current time to match
$current_time = date('m-d-Y H:i:s ', time());
第 17 行是 $my_dt = new DateTime($token_created_at);
这是我的时间格式 06-28-2014 07:43:58
.
Line 17 is $my_dt = new DateTime($token_created_at);
and this is my time format 06-28-2014 07:43:58
.
这就是我生成token_created_at
的方式,$time_gen = date('m-d-Y H:i:s ', time());
.
This is how I generate token_created_at
, $time_gen = date('m-d-Y H:i:s ', time());
.
推荐答案
您传递的日期字符串是 不支持 DateTime 解析器.您必须使用 createFromFormat 创建一个 DateTime 对象.此方法允许您在创建新的 DateTime 对象时指定自定义格式:
The date string you're passing is not supported by the DateTime parser. You must create a DateTime object by using createFromFormat. This method allows you to specify the custom format when creating a new DateTime object:
$my_dt = DateTime::createFromFormat('m-d-Y H:i:s', $token_created_at);
如果您仍然收到错误,这意味着您的 $token_created_at
不是您指定的格式:
If you're still getting an error that means that your $token_created_at
is not in the format you specified:
$now = date('m-d-Y H:i:s'); //string(19) "06-28-2014 15:00:47"
var_dump(DateTime::createFromFormat('m-d-Y H:i:s', $now));
object(DateTime)#1 (3) {
["date"]=>
string(19) "2014-06-28 15:00:47"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/Berlin"
}
编辑
我看到您的问题 - 格式字符串在 s
之后有一个空格.格式字符串必须完全匹配:
I see your problem - the format string has a space after s
. The format strings must match exactly:
$my_dt = DateTime::createFromFormat('m-d-Y H:i:s ', $token_created_at);
这篇关于致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct(): 无法解析时间字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct(): 无法解析时间字符串
基础教程推荐
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- HTTP 与 FTP 上传 2021-01-01
- 使用 PDO 转义列名 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01