Fondamentalement, ce dont j'ai besoin, c'est d'un script qui, lorsqu'il est fourni avec une heure et un fuseau horaire, peut renvoyer l'heure dans un autre fuseau horaire.
Mes problèmes principaux sont:
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Les exemples ci-dessus vont générer:
2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45
trouvé sur DateTime Manual sur php.net
EDIT: Comme Pekka l’a dit: La classe DateTime existe à partir de la version 5.2 et vous devez d’abord déterminer laquelle des méthodes est réellement implémentée et laquelle n’existe que depuis la version 5.3.
essayez ceci, ça pourrait aider :)
function converToTz($time="",$toTz='',$fromTz='')
{
// timezone by php friendly values
$date = new DateTime($time, new DateTimeZone($fromTz));
$date->setTimezone(new DateTimeZone($toTz));
$time= $date->format('Y-m-d H:i:s');
return $time;
}
Je sais qu'il est tard. Pour tous ceux qui voudraient une fonction simple pour convertir utc en n’importe quel fuseau horaire local
function UTCTimeToLocalTime($time, $tz = '', $FromDateFormat = 'Y-m-d H:i:s', $ToDateFormat = 'Y-m-d H:i:s')
{
if ($tz == '')
$tz = date_default_timezone_get();
$utc_datetime = DateTime::createFromFormat($FromDateFormat, $time, new
DateTimeZone('UTC'));
$local_datetime = $utc_datetime;
$local_datetime->setTimeZone(new DateTimeZone($tz));
return $local_datetime->format($ToDateFormat);
}
echo UTCTimeToLocalTime('2015-07-01 13:30:00','America/Denver');