La risposta fornita da Volkerk è corretta, ma se hai davvero bisogno di un lavoro, guarda il mio esempio.
<?php
//default timezone
$date = new DateTime(null);
echo 'Default timezone: '.$date->getTimestamp().'<br />'."\r\n";
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.$date->getTimestamp().'<br />'."\r\n";
//Europe/Amsterdam
$date = new DateTime(null, new DateTimeZone('Europe/Amsterdam'));
echo 'Europe/Amsterdam: '.$date->getTimestamp().'<br />'."\r\n";
echo 'WORK AROUND<br />'."\r\n";
// WORK AROUND
//default timezone
$date = new DateTime(null);
echo 'Default timezone: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n";
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n";
//Europe/Amsterdam
$date = new DateTime(null, new DateTimeZone('Europe/Amsterdam'));
echo 'Europe/Amsterdam: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n";
?>
Prendi il timestamp regolare e aggiungere l'UTC di offset
fonte
2011-12-29 13:15:17
È probabilmente fuorviante usare una soluzione come questa in quanto si rischia di entrare in tutti i tipi di problemi con i fusi orari rispetto al timestamp di unix. Dato che l'OP ha specificato un formato di output, sarebbe meglio usare il metodo di formattazione di DateTime, ad esempio $ date-> format ('Y-m-d H: i: s') – liquorvicar
Sono assolutamente d'accordo con te e non lo consiglierei. Memorizzare come timestamp unix sarebbe meglio e quando si visualizzano i dati convertiti in fuso orario corretto. Se l'utente sta per archiviare queste informazioni in un database, scarterei completamente il formato di timestamp unix e andrò per un tipo di database datetime (a causa del diverso datetime/funzioni che renderà la tua vita più facile) –
E 'giusto - '$ date = new DateTime (null, new DateTimeZone ('Philippines')); '. Voglio solo ottenere da PH. – RoCk