如何查找国家/地区的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的例子,这真的有用吗?
谢谢
您可以按照国家搜索时区,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甚至没有为美国这样的一些国家任意选择一个。
不知道这是你在找什么,但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()。
你不能这样做,因为很多国家都有多个时区。你可以用一个城市的名字来存储时区,但我会使用一个整数,时区偏移量以秒为单位。
你可以通过大陆时区列表/城市这个函数: 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
对不起,不张贴链接,但我没有足够的业力。
我正在尝试这个,你只选择国家名称。 EX:http://wwp.greenwichmeantime.com/time-zone/all.htm – YumYumYum 2010-08-14 14:22:37
我不想要。其关于国家名称。 – YumYumYum 2010-08-14 15:27:48
@Stackfan:是的,我选择了“美利坚合众国”链接,该链接将我带到... /时区/美国和所提及的页面内容。那么,你举了一个你不想要的东西的例子吗?你也写了'是的!首都/下城我在说话。 (国家名称+资本)===国家名称===',这是哪一个? “国名”或“国名+大写”? – VolkerK 2010-08-14 15:31:44
需要澄清,是否找到支持时区的问题? – 2010-08-14 13:36:14
那些拥有多个时区的国家呢? – 2010-08-14 13:36:44
还有中国。 “中国”何时成为一个国家? – GZipp 2010-08-14 13:49:26