如果我取消评论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
答案 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
答案 2 :(得分:1)
DateTime
类的公共方法和属性为documented in the PHP manual。正如错误消息所示,其中没有date
属性。实际上,该类根本没有任何公共属性,只有常量和方法。
与几乎任何其他对象一样,强制转换为字符串的唯一可靠方法是使用专用方法。在DateTime
中,方法为format()
。
DateTime
是用C编写的本机对象,而不是纯PHP类。因此,print_r()
和等效函数不一定显示与常规对象相同的信息。