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

PHP-DateTime::__construct():解析时间字符串失败

贺博厚
2023-03-14

我从另一个表中提取DateTime时间戳结果,该表设置为:

当倾销特定价值的$post-

"2602585961"

它是字符串格式的。

在我的实体中,我已将setter修改为:

public function setStartTime($startTime)
{
    $date = new \DateTime($startTime);
    $this->startTime = $date->getTimestamp();
    return $this;
}

还有我的代码:

$newEntityObject->setStartTime(intval($post->getUploadTime()));

我使用intval()将字符串转换为整数(时间戳),所以我可以将其插入数据库,但我得到一个错误:

DateTime::__construct():解析时间字符串失败(2602585961)位置8(6):意外字符”

无论是否使用intval(),这都是一个错误。我想不出是怎么回事?

我知道有很多关于这个问题的帖子。我试过了,但问题仍然存在。


共有3个答案

公羊宗清
2023-03-14

您不需要转换为数字。因为您需要一个以@you need use@开头的字符串参数。阅读文档。

 <?php
    
    $a = "@2602585961";
    
    function setStartTime($startTime)
    {
        $date = new \DateTime($startTime);
        $b = $date->getTimestamp();
        return $b;
    }
    
    echo setStartTime($a);

https://www.php.net/manual/ru/datetime.formats.compound.php

在您的代码中:

$newEntityObject->setStartTime("@" .  $post->getUploadTime());
常永长
2023-03-14

您有一个时间戳,您正试图将其设置为DateTime,并从新的DateTime对象获取时间戳。

DateTime构造函数只接受特定的日期和时间格式。

此外,给定的值指的是2052年。所以你以前可能有另一个问题。

廖华翰
2023-03-14

尝试:

$date = new \DateTime();
$date->setTimestamp($startTime);
$this->startTime = $date->getTimestamp();

但是,由于您正试图将时间戳分配给您的starTime属性,并且您已经将时间戳传递给您的函数,因此您可以分配您正在传递的任何时间戳:

$this->startTime = $startTime;
 类似资料:
  • 我有一个Symfony控制器,它接收来自客户端的请求,必须将输入的日期(例如12-12-2004)解析为DateTime对象,并将其存储在数据库中。它工作得很好,除非我尝试输入一个包含三位数年份的日期,例如: DateTime::__construct():在位置7(4)解析时间字符串(12-12-940)失败:意外字符 代码本身是非常简单的,我只是调用从客户端请求的值。

  • 我在工作中遇到了一个问题。在这个函数中,我想选择合作者,其中日期出生是现在的日期。但问题是我有一个错误,比如:在Creator中。php第80行: DateTime::__construct():解析时间字符串失败(22/03/1983)位置0(2):意外字符 我需要帮助 提前感谢

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

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

  • 我有一个这种格式的字符串:,我想解析它,这样我就可以说,例如,它是星期几。但是我正在努力应对时区偏移。如果我做了,那么我最终会得到这样的东西: 它对时区做了一些事情,但是如果我想显示时区信息,我该如何处理? 如果有问题,我之前已经使用设置了默认时区。 更新:如果字符串具有正时区,例如,则输出的最后一部分是:

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