在PHP中将时区偏移量转换为友好名称

时间:2010-02-18 04:24:21

标签: php datetime timezone

我正在尝试使用PHP将RFC时间戳转换为友好日期。这是一个例子:

Wed, 17 Feb 2010 19:44:01 -0500

我希望打印为:

Wed, 17 Feb 2010 19:44:01 EST

使用date()+ strtotime()似乎没有办法,因为它将它转换为服务器的时区(在我的情况下是PST)。

对于所有GMT偏移,有一种简单的方法吗?好像一定有​​。

3 个答案:

答案 0 :(得分:1)

请参阅strototime()date()

echo date('D, j M Y G:i:s T', strtotime('Wed, 17 Feb 2010 19:44:01 -0500));
//Wed, 17 Feb 2010 19:44:01 EST

更新:要设置时区,请参阅date_timezone_set()。如果需要根据字符串中的偏移量设置时区,则可能需要进行一些解析。如需帮助,请参阅date_parse_from_format()及相关函数getdate(),date_parse()等。http://us2.php.net/manual/en/ref.datetime.php

答案 1 :(得分:0)

使用date功能以及 strtotime ,例如:

 print date("format-here", strtotime("Wed, 17 Feb 2010 19:44:01 -0500"));

注意: strtotime 功能需要正确/可接受的日期字符串。

如果您需要转换为当地时间,请参阅以下链接:

http://www.askdavetaylor.com/how_do_i_get_local_time_with_the_php_time_function.html

http://php.net/manual/en/function.localtime.php

答案 2 :(得分:0)

问题在于,虽然EST等于UTC - 5小时,但-0500也可能意味着其他时区,例如CDT,这是夏令时期间的中心时区。

简单地说,没有一对一的映射。除了时区偏移之外,您还需要知道位置以确定友好名称。这就是操作系统在设置时区时询问您所在城市的原因。