我可以看到这些问题有很多问题,但我很困惑,为什么以下不起作用,直接来自PHP docs:
$tempDate = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $tempDate;
错误:
PHP Catchable致命错误:类DateTime的对象无法转换为字符串。
事实上,文档中的每个示例都会给我这个错误。有什么想法吗?
答案 0 :(得分:4)
您不能直接echo
DateTime
个对象。您必须使用format
方法获取日期和/或时间部分:
$tempDate = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $tempDate->format('Y-m-d H:i:s');
// NOT echo $tempDate!!!
如果要查看对象的详细信息(用于调试),可以使用var_dump
:
$tempDate = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
var_dump($tempDate);
答案 1 :(得分:1)
错误消息:
PHP Catchable致命错误:类
DateTime
的对象无法转换为字符串。
是不言自明的。声明:
echo $tempDate;
尝试打印DateTime
对象。 echo()
语言构造需要一个字符串,你传递一个DateTime
对象。 DateTime
类未实现__toString()
magic method,PHP不知道如何将DateTime
对象转换为字符串。
有很多方法可以将DateTime
对象表示为字符串,所有这些方法都由DateTime::format()
方法处理。
事实上,文档中的每个示例都会给我这个错误。
事实上,DateTime::createFromFormat()
文档中的every example内容为:
echo $date->format('Y-m-d');
echo $date;
。
有什么想法吗?
仔细阅读DateTime
和DateTime::format()
的文档。