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

DateTime::_construct():未能分析时间字符串(131022120001Z),但值来自openssl_x509_parse()

皇甫鸿远
2023-03-14

我使用openssl_x509_parse()解析数字证书。

我编写了一个实体类,它读取数组并转换对象中的值。

所以,对于日期,我使用\DateTime()

问题是有时对象创建不会失败,有时会失败。

例如,如果我得到谷歌的数字证书。com,我得到以下数组作为结果:

...
"validFrom" => "151118151813Z"
"validTo" => "160216000000Z"
"validFrom_time_t" => 1447859893
"validTo_time_t" => 1455580800
...

这些字符串会导致错误:

DateTime::_构造():无法分析位置8(0)处的时间字符串(1474632000):意外字符

我不明白如何将它们转换为DateTime对象。我做错了什么?

共有1个答案

东方嘉木
2023-03-14

字符串151118151813Z在Zulu时区中表示为ymdHe,您可以将其解析为:

$dt = DateTime::createFromFormat('ymdHise', '151118151813Z');
echo $dt->format('c');

演示

或者只使用unix时间戳格式1447859893

$dt = new DateTime('@1447859893');
echo $dt->format('c');

演示

在这两个例子中,您得到相同的输出。

 类似资料:
  • 我在尝试使用时间戳创建新的DateTime对象时出现了此构造错误: 异常:DateTime::construct():未能分析位置8(8)处的时间字符串(1372622987):DateTime中出现意外字符- 对象创建代码为: 其中$dbResult- 1372622987 对于传递的无效格式,我可以理解这个错误,但这是一个真正的时间戳。 原因很奇怪:我运行了一个脚本来创建一个新的DateTim

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

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

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

  • 我从另一个表中提取DateTime时间戳结果,该表设置为: 当倾销特定价值的

  • 我得到这个错误 (!)致命错误:未捕获异常'异常'与消息'DateTime::__construct():未能解析时间字符串(06-28-2014 07:43:58 )在位置0(0):意外字符'在 /Users/matt/Desktop/Likes/forgot/activate.php第17行 当你试图这么做的时候 第17行是