如何查找国家/地区的GMT日期/时间?

问题描述:

我如何才能找到国家名称 - > GMT日期/时间,我可以这样做以下:如何查找国家/地区的GMT日期/时间?

例子:

$datetime = new GMT_search('America'); //output: 2010-01-01 00:00:00  
$datetime = new GMT_search('India'); //output: 2010-01-01 ??:??:??  
$datetime = new GMT_search('China'); //output: 2010-01-01 ??:??:?? 

我试过gmdate()date_default_timezone_set('Asia/....');ini_set('date.timezone','China');但它不完全帮助我很容易找到格林尼治标准时间的国家名称。

任何人都可以请给我看一个PHP的例子,这真的有用吗?

谢谢

+0

需要澄清,是否找到支持时区的问题? – 2010-08-14 13:36:14

+3

那些拥有多个时区的国家呢? – 2010-08-14 13:36:44

+0

还有中国。 “中国”何时成为一个国家? – GZipp 2010-08-14 13:49:26

您可以按照国家搜索时区,DateTimeZone::listIdentifiers

实例,以获得时区在葡萄牙:

print_r(DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "PT")); 

给出:

 
Array 
(
    [0] => Atlantic/Azores 
    [1] => Atlantic/Madeira 
    [2] => Europe/Lisbon 
)

那么你可以这样做:

$d = new DateTime("now", new DateTimeZone("Atlantic/Azores")); 
echo $d->format(DateTime::W3C); //2010-08-14T15:22:22+00:00 

正如已经重复了一遍又一遍在这个线程,你不能在每个国家获得一个单一的时区。国家有几个时区,你会注意到即使this page甚至没有为美国这样的一些国家任意选择一个。

+2

谢谢,我试图找到国家/地区代码如何到达城市或时区。例如:print_r(DateTimeZone :: listIdentifiers(DateTimeZone :: PER_COUNTRY,“PT”)); – YumYumYum 2010-08-14 15:37:48

+2

代码示例的完美之处/优点在这里:1.我现在将把土地代码搜索到任何2.我将检查数组长度并选择任何一个3.我有我的结果。再次感谢.. – YumYumYum 2010-08-14 15:44:20

不知道这是你在找什么,但PEAR有一个可用的“Date”包,有一个很好的例子,似乎做你所要求的。

http://pear.php.net/manual/en/package.datetime.date.examples.php(向下滚动到“转换时区”)

Here你会发现通过PHP支持的时区,这意味着的完整列表,与例如使用date_default_timezone_set()。支持具有多个时区的国家也可以方便查找。采取example of the American region

<?php 
date_default_timezone_set('America/New_York'); 
echo date('D,F j, Y, h:i:s A'); 
?> 

该列表是由PHP支持的完整的时区,其意图用于例如, date_default_timezone_set()。

+2

我只有国家,NO CITY数据库。你如何使国家:: GMT_DateTime? – YumYumYum 2010-08-14 14:00:18

+2

我应该不得不使用默认城市的国家?我不想具体的城市日期/时间?但是我又遇到了亚洲或欧洲的问题?例如:$ country = array('America'=>'New_York','India'=>'Mumbai','China'=>'Sangai'); – YumYumYum 2010-08-14 14:08:15

+0

有可能一个国家有不止一个时区。所以试图转换国家名称会产生不准确的结果。 – 2010-08-14 14:10:23

你不能这样做,因为很多国家都有多个时区。你可以用一个城市的名字来存储时区,但我会使用一个整数,时区偏移量以秒为单位。

你可以通过大陆时区列表/城市这个函数: www.php.net/manual/en/function.timezone-identifiers-list.php

你可以得到相应的偏离这个函数: www.php.net/manual/en/datetimezone.getoffset.php

如果你有一个有效的偏移量,你可以使用gmdate()而不是date()来获得你的格式的日期,而不需要时区/ dst调整。只要通过时间()+你调整的存储: www.php.net/manual/en/function.gmdate.php

对不起,不张贴链接,但我没有足够的业力。

+2

我正在尝试这个,你只选择国家名称。 EX:http://wwp.greenwichmeantime.com/time-zone/all.htm – YumYumYum 2010-08-14 14:22:37

+2

我不想要。其关于国家名称。 – YumYumYum 2010-08-14 15:27:48

+1

@Stackfan:是的,我选择了“美利坚合众国”链接,该链接将我带到... /时区/美国和所提及的页面内容。那么,你举了一个你不想要的东西的例子吗?你也写了'是的!首都/下城我在说话。 (国家名称+资本)===国家名称===',这是哪一个? “国名”或“国名+大写”? – VolkerK 2010-08-14 15:31:44