我有一个表,在名为Film_Release
的字段中包含格式为Friday 20th April的字符串值
我正在循环,我想将它们转换为datetime
并将它们转出到另一个表中。我的第二个表有一个名为Films_Date
的列,格式为DATE
。我收到此错误
无法将DateTime类的对象转换为字符串
$dateFromDB = $info['Film_Release'];
$newDate = DateTime::createFromFormat("l dS F Y",$dateFromDB); //( http:php.net/manual/en/datetime.createfromformat.php)
字符串
然后通过insert命令将$newdate
插入到表中。
为什么我会得到这样一个错误?
9条答案
按热度按时间4ioopgfo1#
因为
$newDate
是DateTime
类型的对象,而不是字符串。documentation是显式的:返回根据指定格式格式化的新
DateTime
对象。如果你想从一个字符串转换到
DateTime
再转换回字符串来改变格式,在最后调用DateTime::format
来从你的DateTime
中得到一个格式化的字符串。字符串
qcbq4gxm2#
试试这个:
字符串
注意:
$row['valdate']
是数据库中的值日期trnvg8h33#
使用此:
$newDate = $dateInDB->format('Y-m-d');
brc7rcf04#
如果您正在使用Symfony的Twig模板,则可以使用经典的
{{object.date_attribute.format('d/m/Y')}}
来获取所需的格式化日期。jyztefdp5#
字符串
然后它从数据库中给定的日期对象转换
sdnqo3pr6#
你正在尝试将
$newdate
插入到数据库中。你需要先将其转换为字符串。使用DateTime::format
方法将其转换回字符串。gg0vcinb7#
检查以确保有电影发行日期;如果日期丢失,您将无法在非对象上格式化。
字符串
或
型
yxyvkwin8#
这是一种题外话,但我来这里从谷歌相同的错误.对我来说,这个错误出现时,我选择从mssql数据库的datetime字段,而不是使用它以后在php-script.像这样:
字符串
错误代码:
Object of class DateTime could not be converted to string
我意识到你不能只是从数据库中选择日期时间:
型
但是你必须使用转换为这个字段:
型
vcirk6k69#
对于那些像我一样来自JavaScript的人:你不能简单地回显DateTime对象,并期望输出一个格式良好的默认字符串!
你必须使用**
format()
**函数并输入一个自定义格式,如$dateTimeObject->format('Y-m-d')
,以获得存储在对象中的日期的字符串表示。不过,你可以使用一些默认常量,这个常量最接近JavaScript的默认格式:
字符串
或者,使用
print_r( $dateTimeObject )
快速浏览datetime值:)型