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

PHP DateTime无法从历元时间戳分析时间字符串

彭飞虎
2023-03-14

我正试图以小时为单位显示自这样一个日期以来的数字。。。

$timestamp1 = '1517158402';
$timestamp2 = '1530204802';
$timestamp3 = '1548694384';

if ($timestamp1 && $timestamp2 && $timestamp3 ) {

    /* Calculate time */
    $timestamp1_obj = new DateTime($timestamp1);
    $timestamp2_obj = new DateTime($timestamp2);
    $timestamp3_obj = new DateTime($timestamp3);

    $since_start = $timestamp2_obj->diff($timestamp3_obj);
    echo $since_start->h.' hours';

}

这是给我的错误信息。。。

Uncaught Exception: DateTime::__construct(): Failed to parse time string

有人知道我哪里出错了吗?

共有1个答案

温举
2023-03-14

您需要使用setTimestamp

$date = new DateTime();
$date->setTimestamp(1171502725);
 类似资料:
  • 我已经研究过关于同一错误的其他问题,但我很难将它们应用到我的情况中。 这是我得到的错误: 致命错误:未捕获异常“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):在数

  • 我有以下字符串格式的时间戳 如何将上面的时间戳字符串解析为?

  • 问题内容: 我有一个要求,我要获取两个ISO 8601时间戳格式的字符串,并且必须对其进行比较并获取它们的最大时间戳。字符串采用以下格式。 为了进行比较,我需要将它们转换为DB2时间戳,然后进行比较。问题出在“ T”和“ Z”字母上。因此,我无法施展。我知道我可以简单地 将T和Z进行转换,但是我想知道是否有更好的方法。 我尝试了以下功能,但无法获得所需的结果。 使用DB2 LUW v9.7 问题答

  • 问题内容: 有什么方法可以在MySQL中将字符串转换为UNIX时间戳? 例如,我有一个字符串,需要使用unix时间戳格式。 问题答案: 绝招: 但是,该函数仅采用标准的MySQL格式化日期。如果要使用AM / PM表示法,则需要先使用如下代码: