Echo不打印对象值

时间:2014-05-13 10:25:11

标签: php mysql

如果我取消评论print_r($dateTime),那么此声明正常echo $dateTime->date;

为什么会这样。请给我建议。

 $current_date=date('Y-m-d H:i:s');
 $dateTime = DateTime::createFromFormat("Y-m-d H:i:s", $current_date, (new DateTimeZone('UTC')));

 $dateTime->setTimezone(new DateTimeZone('PST'));
 //print_r($dateTime); //If I print object then below echo stmt is working 

  echo $dateTime->date;

获得以下错误

Notice: Undefined property: DateTime::$date in C:\xampp\htdocs\datetime.php 

3 个答案:

答案 0 :(得分:3)

The DateTime class没有名为date的属性。

您可能正在寻找DateTime::format(string)来输出具有特定格式的日期 例如:

echo $dateTime->format('Y-m-d H:i')
// prints: 2014-05-13 12:29

答案 1 :(得分:1)

print_r($dateTime,1);之前添加echo $dateTime->date;,您的代码将按预期运行。

代码..

<?php
$current_date=date('Y-m-d H:i:s');
$dateTime = DateTime::createFromFormat("Y-m-d H:i:s", $current_date, (new DateTimeZone('UTC')));
$dateTime->setTimezone(new DateTimeZone('PST'));
print_r($dateTime,1);  //<-- Add this
echo($dateTime->date); // 2014-05-13 03:35:44 

Demo

答案 2 :(得分:1)

DateTime类的公共方法和属性为documented in the PHP manual。正如错误消息所示,其中没有date属性。实际上,该类根本没有任何公共属性,只有常量和方法。

与几乎任何其他对象一样,强制转换为字符串的唯一可靠方法是使用专用方法。在DateTime中,方法为format()

DateTime是用C编写的本机对象,而不是纯PHP类。因此,print_r()和等效函数不一定显示与常规对象相同的信息。