这是我的代码:
$date1 = new DateTime();
$date1->format('Y-m-d H:i:s');
echo $date1->date. ' while echoing date1';
它仅在“回显date1”时回显,换句话说,$date1->date
为空
如果我首先像这样添加转储date1:
$date1 = new DateTime();
$date1->format('Y-m-d H:i:s');
var_dump($date1);
echo $date1->date. ' while echoing date1';
我得到了
object(DateTime)[359]
public 'date' => string '2016-06-26 16:54:56.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
2016-06-26 16:54:56.000000 while echoing date1
这就是我想要的。这件事让我很生气,因为它完全出乎意料。
答案 0 :(得分:2)
格式选项不是用于设置对象的格式,它是一种以请求的格式将日期对象作为字符串返回的方法:
echo $date->format('Y-m-d H:i:s');
澄清一下,您所看到的日期'为方便起见,对象内部只是一个文本表示,因为内部它将以优化的方式保存。如果要将其添加到字符串,则需要指定所需的格式:
echo "This is the date ".$date->format('c');