datetime — в PHP 5.4 Как добавить 2 часа в переменную даты UTC (и вернуть UTC, отформатированный для ical)

У меня есть переменная даты, к которой мне нужно просто добавить 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))

Но я не знаю, как приспособить это к моим потребностям.

Заранее спасибо!

0

Решение

Попробуй это:

$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;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]