2015-09-24 3 views
0

J'ai une variable de date que je dois simplement ajouter 2 heures à. Il doit retourner la date UTC formatée comme: 20150921T172345Z. Aucun des exemples de manipulation de date que j'ai vus n'est exactement ce dont j'ai besoin et j'ai du mal à convertir ce que j'ai vu dans mon cas.en PHP 5.4 Comment ajouter 2 heures à une variable de date UTC (et retourner UTC formaté pour ical)

Voici ce que j'ai maintenant qui ne fonctionne pas:

//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); 

Je reçois l'erreur suivante:

PHP Fatal error: Call to a member function add() on a non-object.

Cette date sera inscrite dans un fichier .ics comme date de fin de l'événement (publier un fichier de calendrier). Donc, le retour UTC est nécessaire. J'ai vu du code en utilisant

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

Mais je ne sais pas comment l'adapter à mes besoins.

Merci d'avance!

+0

en double possible de [ajouter des heures à UTC dateTime] (http://stackoverflow.com/questions/20876150/add-hours-to-utc-datetime) –

Répondre

1

Essayez ceci:

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

$endDateForWelcome est une chaîne donc vous devez analyser avec strtotime()

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

echo "Time Right Now: ". $rightNowUTC ."</br>"; 
echo "Time After Adding:". $endDateForWelcome;