Bla*_*man 6 ruby ruby-on-rails
我对如何返回感到困惑:
def utc2user(t)
ENV["TZ"] = current_user.time_zone_name
res = t.getlocal
ENV["TZ"] = "UTC"
res
end
Run Code Online (Sandbox Code Playgroud)
它首先设置ENV变量,然后将'res'设置为本地值,然后重新分配ENV变量,然后返回res?
我不确定我是否理解这是如何从UTC转换到用户时区的?
第一行是将环境时区变量设置为用户的时区,以便res在该用户的正确时间内获取值.如果没有将其设置为用户,则时间仍为UTC.
然后它将环境变量设置回UTC时间,我假设它是应用程序的默认值.
然后它返回res.