php 根据给定字符串时间获取时区

现在又这样一个时间字符串变量

$datetime = '2016-10-10T11:34:16+0800';

可以看出它是一个UTC+8时区的时间,所以:

1、php怎么获取这个时间字符串的时区?

2、php是否可以将这个时间字符串转为其它时区的时间字符串,如转换为UTC+0时区?

这里补充一下:时间字符串的时区是看不出来的,这里给的时间字符串只是个例子

阅读 5.7k
2 个回答

你可以用DateTime对象。

$dt = new DateTime($datetime); //用你提供的时间字符串创建对象
$tz = $dt->getTimezone(); //获取时区对象
echo $tz->getName(); //输出时区名称
$tz2 = new DateTimeZone('GMT'); //新建时区对象
$dz->setTimezone($tz2); //设置新时区
echo $dz->format('c'); //输出ISO 8601格式的时间,就是你上面提供的那种格式

具体参考文档:http://php.net/DateTime

通过 strtotime($datetime); 转成时间戳再去转换成其他时区的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏