PHP根据GMT偏移量获取当前本地时间

时间:2014-04-22 09:04:23

标签: php

php中有一个函数date_default_timezone_set(),它接受​​像“UK / London”这样的时区字符串。但不幸的是,我只有用户的GMT偏移量。

假设我在GMT +5上,我希望获得基于GMT +5的当前时间。我在google上做了很多搜索,但没有帮助。

因为,我没有时区字符串,我正在寻找像

这样的东西
$current_date = date("Y M D H:S, "GMT +5");

请帮忙

2 个答案:

答案 0 :(得分:2)

你现在只能为使用GMT补偿,即如果用户在半年前告诉你他的GMT补偿并且你想知道现在他的位置是什么时候它完全没用。它基本上可以在几个小时的范围内。即使您在几秒钟之前获得偏移量,如果您碰巧完全达到了DST更改,那么在进行计算时可能会有所不同。

话虽如此,您需要在格式化时间内添加/减去偏移小时数,这是您唯一可以做的事情。

$offset = 5;
$hours  = (gmdate('H') + $offset) % 24;

echo $hours . gmdate(':i:s Y m d');

这只是一个例子,你也需要处理分钟补偿。

答案 1 :(得分:1)

date_default_timezone_set('GMT');
$curTime = strtotime("+5 hours");
$current_date = date("Y M D H:S, $curTime);
  1. 首先设置GMT时区或获取GMT偏移。
  2. 获取时间戳
  3. 到目前为止的时间戳