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

Get Timezone date and time using PHP

本问题已经有最佳答案,请猛点这里访问。

有没有办法在不更改默认时区的情况下获取特定时区?
我尝试使用此代码来获取时区,但是当我恢复其不同的输出时。

1
2
3
4
5
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-08-15 03:24:48
2013-08-15 13:24:48
2013-08-14 22:24:48

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


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

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

甚至更好:

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

? The following code will output:

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

America / New_York - 2013-08-14 23:48:57

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

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

echo"";

echo"America/New_York -";

$now = new DateTime(null, new DateTimeZone('America/New_York'));
echo $now->format('Y-m-d H:i:s');

?>