字符串 DateTime::diff 上的致命错误
Fatal error on DateTime::diff on string
我很清楚这里还有其他问题和答案,我一直在研究它们:
Calculate number of hours between 2 dates in PHP
但我仍然找不到解决问题的办法。
这是场景:
我正在使用 Google 日历 Api。我有一个 foreach()
循环 运行,它捕获事件的 dateTime()
。
我想得到开始时间和结束时间的差异。我的代码如下:
$neweventDateStr = new DateTime($event->start->dateTime);
$neweventDateEnd = new DateTime($event->end->dateTime);
$diff = $eventDateEnd->diff($neweventDateStr);
但是我在最后一行收到以下错误:
Fatal error: Call to a member function diff() on string
我检查过,两个变量都被识别为 dateTime 对象。
因此我无法弄清楚为什么会给我上面列出的错误。
关于这是为什么的任何线索?
注意,代码:
$event->start->dateTime
Returns 来自 google 服务器的日期和时间值作为 dateTime RFC 3339 格式:来源:
https://developers.google.com/google-apps/calendar/v3/reference/events
它 returns 值是这样的:
$event->start->dateTime = 2015-07-06T14:30:00+02:00
$event->se->dateTime = 2015-07-06T15:30:00+02:00
我尝试过:
echo $neweventDateStr;
并且我 returns 错误(正如预期的那样)变量无法转换为字符串,因为它是 dateTime
对象格式。
问题出在你的代码中:-
$diff = $eventDateEnd->diff($neweventDateStr);
应该是:-
$diff = $neweventDateEnd->diff($neweventDateStr); // because no where $eventDateEnd is defined.
举例如下:-
<?php
$neweventDateStr = new DateTime('2015-04-04 10:10:10');
$neweventDateEnd = new DateTime('2015-04-10 10:10:10');
$diff = $neweventDateEnd->diff($neweventDateStr); // instead of $eventDateEnd i write $neweventDateEnd
print_r($diff);
?>
我很清楚这里还有其他问题和答案,我一直在研究它们: Calculate number of hours between 2 dates in PHP
但我仍然找不到解决问题的办法。
这是场景:
我正在使用 Google 日历 Api。我有一个 foreach()
循环 运行,它捕获事件的 dateTime()
。
我想得到开始时间和结束时间的差异。我的代码如下:
$neweventDateStr = new DateTime($event->start->dateTime);
$neweventDateEnd = new DateTime($event->end->dateTime);
$diff = $eventDateEnd->diff($neweventDateStr);
但是我在最后一行收到以下错误:
Fatal error: Call to a member function diff() on string
我检查过,两个变量都被识别为 dateTime 对象。 因此我无法弄清楚为什么会给我上面列出的错误。 关于这是为什么的任何线索?
注意,代码:
$event->start->dateTime
Returns 来自 google 服务器的日期和时间值作为 dateTime RFC 3339 格式:来源: https://developers.google.com/google-apps/calendar/v3/reference/events
它 returns 值是这样的:
$event->start->dateTime = 2015-07-06T14:30:00+02:00
$event->se->dateTime = 2015-07-06T15:30:00+02:00
我尝试过:
echo $neweventDateStr;
并且我 returns 错误(正如预期的那样)变量无法转换为字符串,因为它是 dateTime
对象格式。
问题出在你的代码中:-
$diff = $eventDateEnd->diff($neweventDateStr);
应该是:-
$diff = $neweventDateEnd->diff($neweventDateStr); // because no where $eventDateEnd is defined.
举例如下:-
<?php
$neweventDateStr = new DateTime('2015-04-04 10:10:10');
$neweventDateEnd = new DateTime('2015-04-10 10:10:10');
$diff = $neweventDateEnd->diff($neweventDateStr); // instead of $eventDateEnd i write $neweventDateEnd
print_r($diff);
?>