如果加载codeigniter的日期助手,将有函数"local_to_gmt()",但它不需要参数,只转换当前服务器时间(由time()生成)。
我需要这个函数能够根据用户的本地时间和数据库中的DST字段转换用户给定的任何其他时间。
或者像human_to_unix()这样的函数,它还有两个参数:dst和本地时间。
是否存在这样的功能?
我说过:local_to_gmt()不需要争论,但正如第一个回答者所说,它也需要争论。但我关注的是用户时区和夏令时选项
第三次更新!!!
我已经找到了一个解决方案,但根据stackoverlow定律,我直到几个小时后才能回答自己的问题。
看看这个函数,它可能是我迄今为止最接近的解决方案:http://codeigniter.com/wiki/convert_to_gmt
function convert_to_gmt($time = '', $timezone = 'UTC', $dst = FALSE)
{
if ($time == '')
{
return now();
}
$time -= timezones($timezone) * 3600;
if ($dst == TRUE)
{
$time -= 3600;
}
return $time;
}
但仍然存在一个问题:
你相信$dst能正常工作吗?据我所知,根据函数,$dst将始终减少一小时。但不管是不是夏天,都应该意识到这一点。即使是冬天,它也会减少时间!!!
如何克服这个问题???
手册上说:
local_to_gmt()
以Unix时间戳作为输入并将其返回为gmt
并提供了这个例子:
$now = time();
$gmt = local_to_gmt($now);
所以我敢说,它实际上接受了一个论点。
在PHP中使用gm
组函数,如:
- gmmktime
当我问这个问题时,我不知道PHP有这些函数,所以我在Codeigniter中查找了这样一个行为。