2010-05-04 5 views
1

j'ai un fuseau horaire en 2010-05-04T05: format 27: 00.000Z qui indique l'heure GMT et je veux ajouter GMT 10+ à l'aide de php.ajout de GMT fois en php

Je peux faire cette chose en utilisant le code suivant, mais comment ajouter directement 2010-05-04T05: 27: 00.000Z et GMT 10+ afin que je puisse obtenir une date et une heure valides.

$offset=10*60*60; 
$dateFormat="d-m-Y H:i::m:s"; 
echo $timeNdate=gmdate($dateFormat, time()+$offset); 

Répondre

0

Utilisez DateTime classe http://php.net/manual/en/book.datetime.php exacly DateTime::Add()http://www.php.net/manual/en/datetime.add.php

Vous avez un exemple ici:

<?php 
$date = new DateTime('2000-01-01'); 
$date->add(new DateInterval('PT10H30S')); 
echo $date->format('Y-m-d H:i:s') . "\n"; 

$date = new DateTime('2000-01-01'); 
$date->add(new DateInterval('P7Y5M4DT4H3M2S')); 
echo $date->format('Y-m-d H:i:s') . "\n"; 
?> 

Et un autre:

<?php 
$date = new DateTime('2000-12-31'); 
$interval = new DateInterval('P1M'); 

$date->add($interval); 
echo $date->format('Y-m-d') . "\n"; 

$date->add($interval); 
echo $date->format('Y-m-d') . "\n"; 
?> 
+0

Je reçois une erreur en utilisant la fonction PHP ajouter Erreur fatale: Appel à la méthode non définie DateTime :: add() et second code PHP Erreur fatale: de DateInterval 'erreur introuvable classe. J'utilise php 5.2.8 – hunt

+0

@hunt: Dans les liens, vous pouvez lire la fonction DateTime :: add() et la classe DateInterval est disponible depuis la version (PHP 5> = 5.3.0) alors vous avez trop vieux php pour l'utiliser. – Svisstack

+0

est-il un autre moyen pour php 5.2.8? – hunt

1

Peut-être que je manque le point, mais sont vous ne cherchez pas vraiment DateTime::setTimezone?

$timezone = new DateTimeZone('Etc/GMT-10'); // GMT+10:00 
$datetime = new DateTime('2010-05-04T05:27:00.000Z'); 
$datetime->setTimezone($timezone); 
echo $datetime->format('r'); 
// Tue, 04 May 2010 15:27:00 +1000