0

我有一个日期变量,我需要简单地添加 2 小时。它需要返回格式如下的 UTC 日期:20150921T172345Z.

我所见过的日期操作示例都不是我所需要的,而且我很难将所见的内容转换为我的情况。

这是我现在不起作用的东西:

//This yields exactly what I need for start date:
$rightNowUTC = gmdate("Ymd\THis\Z"); 

//But trying to add 2 hours gives an error. So what is wrong with syntax?
//  Start by creating end date variable that i will add the time to.
$endDateForWelcome = gmdate("Ymd\THis\Z");

//  Set duration (per examples I've seen)
$Duration = new DateInterval('PT2H'); // 2 hour

//  Then add duration to the date.
$endDateForWelcome->add( $Duration );

我得到下一个错误:

PHP 致命错误:在非对象上调用成员函数 add()。

该日期将作为事件结束日期写入 .ics 文件(发布日历文件)。因此需要返回 UTC。我看过一些代码使用

date(DATE_ICAL, strtotime($meeting->ends))

但我不知道如何适应我的需要。

提前致谢!

4

1 回答 1

1

尝试这个:

$rightNowUTC = gmdate("Ymd\THis\Z");  //time right now
$endDateForWelcome = gmdate("Ymd\THis\Z", strtotime('+ 2 hours')); 

$endDateForWelcome是一个字符串,所以你必须用 strtotime() 解析它

http://php.net/manual/en/function.strtotime.php

echo "Time Right Now: ". $rightNowUTC ."</br>";
echo "Time After Adding:".  $endDateForWelcome;
于 2015-09-24T03:57:34.660 回答