PHP DateTime对象的奇怪(?)行为


strange (?) behaviour with PHP DateTime object

我正在尝试运行以下

$d = "2015-Mar-22";
$dsd = DateTime::createFromFormat('Y-M-d H:i:s', $d . " 00:00:00");
$ds = strtotime($dsd->date);

并获得

PHP Notice:  Undefined property: DateTime::$date in php shell code on line 1

但是,如果我在转换为unix时间戳之前调用var_dump($dsd),我会得到正确的答案:

echo strtotime($dsd->date);

1427007600

我是不是遗漏了什么?

您正试图使用一个未记录的属性,该属性只因副作用而可用。

->日期可用实际上是支持var_dump()的副作用


如果您只想要一个时间戳,请使用$dsd->getTimestamp()而不是strtotime($dsd->date)