我正在尝试使用PHP将RFC时间戳转换为友好日期。这是一个例子:
Wed, 17 Feb 2010 19:44:01 -0500
我希望打印为:
Wed, 17 Feb 2010 19:44:01 EST
使用date()+ strtotime()似乎没有办法,因为它将它转换为服务器的时区(在我的情况下是PST)。
对于所有GMT偏移,有一种简单的方法吗?好像一定有。
答案 0 :(得分:1)
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
答案 2 :(得分:0)
问题在于,虽然EST等于UTC - 5小时,但-0500也可能意味着其他时区,例如CDT,这是夏令时期间的中心时区。
简单地说,没有一对一的映射。除了时区偏移之外,您还需要知道位置以确定友好名称。这就是操作系统在设置时区时询问您所在城市的原因。