ti posto uno script di esempio,
nel caso tu debba gestire date e orari di timezone diverse
agendo solo con "DateTime"
mi era servito per capire il metodo,
Codice PHP:
<?php
echo "<h2>LOCAL TIMESTAMP</h2>";
$tz = 'UTC';
echo $tz.' time : '.myTimestamp($tz, false)."<br />"."\r\n";
$tz = false; //default timezone
echo 'Default timezone time : '.myTimestamp($tz, false)."<br />"."\r\n";
$tz = 'America/New_York';
echo $tz.' time : '.myTimestamp($tz, false)."<br />"."\r\n";
$tz = 'Europe/Rome';
echo $tz.' time : '.myTimestamp($tz, false)."<br /><br />"."\r\n\r\n";
echo "<h2>LOCAL TIMESTAMP WORKAROUND</h2>";
$tz = 'UTC';
echo $tz.' time : '.myTimestamp($tz, true)."<br />"."\r\n";
$tz = false; //default timezone
echo 'Default timezone time : '.myTimestamp($tz, true)."<br />"."\r\n";
$tz = 'America/New_York';
echo $tz.' time : '.myTimestamp($tz, true)."<br />"."\r\n";
$tz = 'Europe/Rome';
echo $tz.' time : '.myTimestamp($tz, true)."<br />"."\r\n";
function myTimestamp($t, $o)
{
$dt = ( $t
? new DateTime(null, new DateTimeZone($t))
: new DateTime(null)
);
$dl = $dt->getTimestamp()
+ ( $o
? $dt->getOffset()
: 0
);
$df = ( new DateTime("@".$dl) )->format('Y-m-d H:i:s');
return $df;
}
?>