致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__constr

2023-05-06php开发问题
2

本文介绍了致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct(): 无法解析时间字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我收到这个错误

( ! ) 致命错误:未捕获的异常 '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(): 无法解析时间字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17