当前位置: 首页 > 知识库问答 >
问题:

PHP DateTime _construct()无法分析位置x处的时间字符串(xxxxxxxx)

长孙昀
2023-03-14

我在尝试使用时间戳创建新的DateTime对象时出现了此构造错误:

异常:DateTime::construct():未能分析位置8(8)处的时间字符串(1372622987):DateTime中出现意外字符-

对象创建代码为:

$start_date = new DateTime( "@{$dbResult->db_timestamp}" );

其中$dbResult-

1372622987

对于传递的无效格式,我可以理解这个错误,但这是一个真正的时间戳。

原因很奇怪:我运行了一个脚本来创建一个新的DateTime对象,时间戳作为硬编码值传入,它没有报告任何错误。

这似乎是一次性的,但如果有的话,我需要一个解释,因为我承受不起这种情况再次发生。

共有3个答案

郭彬郁
2023-03-14

将您的代码更改为此

$start_date = new DateTime( "@" . $dbResult->db_timestamp );

它会很好的工作

通飞尘
2023-03-14

使用createFromFormat方法

$start\U date=DateTime::createFromFormat(“U”),$dbResult-

更新

我现在建议使用碳

郑功
2023-03-14

如果硬编码,应该使用setTimestamp:

$start_date = new DateTime();
$start_date->setTimestamp(1372622987);

就你而言

$start_date = new DateTime();
$start_date->setTimestamp($dbResult->db_timestamp);
 类似资料:
  • 我已经研究过关于同一错误的其他问题,但我很难将它们应用到我的情况中。 这是我得到的错误: 致命错误:未捕获异常“exception”,消息为“DateTime::u-construct()[DateTime.-construct]:无法分析位置10(1)处的时间字符串(2013-07-22164:50:00):在/Applications/XAMPP/xamppfiles/htdocs/Festi

  • 我需要从表单接收的值创建一个DateTime。问题是这个值像一个字符串一样被接收:“2016-10-10T08:29:06.959Z”,我需要接收像没有引号,因为如果我用引号接收,我就有下一个错误: DateTime::__construct():无法解析位置0()的时间字符串("2016-10-14T22:00:00.000Z"):意外字符 当我尝试将值转换为DateTime时,使用: 如果我尝

  • 我有一个返回日期/时间值的表单。这是相关位的代码(这是Knockout JS中的javascript代码,该网站使用该代码,以及使用Symfony进行验证的Propel代码,以及使用MomentJS进行日期格式化的代码): 不幸的是,提交表单时,会返回以下错误: 致命错误:未捕获的异常'异常'与消息'DateTime::__construct():未能解析时间字符串(开始日期)在位置0(s):在数

  • 我正试图以小时为单位显示自这样一个日期以来的数字。。。 这是给我的错误信息。。。 有人知道我哪里出错了吗?

  • 问题内容: 我正在尝试使用文件中的属性,但它似乎不起作用。 这是我的代码: 此类使用批注获取属性。它也被声明为Spring Service并链接到我的文件: 使用,我将此文件链接到我的文件: 这确实有意义,对吗? 但是,当我尝试启动项目时,Tomcat抛出此异常: 或者,简而言之: 编辑: 这是我的web.xml: 我的infraContext.xml被导入到另一个名为applicationCon

  • 我正在使用下面的函数计算从出生日期(欧洲格式DD/MM/YYYY)算起的人的年龄(以年为单位),这些日期作为文本存储在Wordpress高级自定义字段中 在大多数情况下,它工作正常,但在某些情况下,我得到以下错误: 工作正常的数据示例:$age=get_age($birthday); 对于$birth value=05/04/1946,它可以正常工作,但是对于$birth value=26/01/