У меня есть переменная даты, к которой мне нужно просто добавить 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))
Но я не знаю, как приспособить это к моим потребностям.
Заранее спасибо!
Попробуй это:
$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;
Других решений пока нет …