使用PHP获取时区日期和时间


Get Timezone date and time using PHP

有没有一种方法可以在不更改默认时区的情况下获得特定时区?我试图使用此代码来获取时区,但当我返回时,它的输出并没有什么不同。

echo '<br />'.date('Y-m-d H:i:s') . '<br />';
date_default_timezone_set('Australia/Melbourne'); 
echo '<br />' . date('Y-m-d H:i:s');
date_default_timezone_set('America/Chicago'); 
echo '<br />' . date('Y-m-d H:i:s');

输出:2013年8月15日03:24:482013-08-15 13:24:482013-08-14 22:24:48

作为输出,最后一行添加了一个时间。

根据strtotime和datetime格式,您可以执行以下操作:

echo date("Y-m-d H:i:s",strtotime(date("H:i:s")." America/Chicago"));

甚至更好:

echo date("Y-m-d H:i:s",strtotime("now America/Chicago"));

✓将输出以下代码:


澳大利亚/墨尔本时间-2013-08-15 13:48:57

美国/纽约-2013-08-14 23:48:57

<?php
echo "Australia/Melbourne time - ";
$now = new DateTime(null, new DateTimeZone('Australia/Melbourne'));
echo $now->format('Y-m-d H:i:s');
echo "<br>";
echo "America/New_York - ";
$now = new DateTime(null, new DateTimeZone('America/New_York'));
echo $now->format('Y-m-d H:i:s');
?>