Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中管理不同的时区_Ruby On Rails_Ruby_Time_Timezone_Timestamp - Fatal编程技术网

Ruby on rails 如何在RubyonRails中管理不同的时区

Ruby on rails 如何在RubyonRails中管理不同的时区,ruby-on-rails,ruby,time,timezone,timestamp,Ruby On Rails,Ruby,Time,Timezone,Timestamp,用户的属性有开始时间、结束时间和时区 我只保存时间,不保存日期和用户时区 e、 g 根据给定的时区,仅在给定的开始时间和结束时间的情况下调用用户。我怎么检查这个 我的研究,我发现了这个 in_time_zone('Eastern Time (US & Canada)') 我想根据其开始时间和基于时区的结束时间检查用户是否可用此时区是否适用于整个应用程序?否否……这取决于用户时间Z您的问题是什么?请说明可回答的问题,以便我们能够回答。我更新了我的问题。我想根据其开始时间和结束时间(基于时

用户的属性有
开始时间
结束时间
时区

我只保存时间,不保存日期和用户时区 e、 g

根据给定的
时区
,仅在给定的
开始时间
结束时间
的情况下调用用户。我怎么检查这个

我的研究,我发现了这个

in_time_zone('Eastern Time (US & Canada)')

我想根据其
开始时间
和基于
时区的
结束时间
检查用户是否可用此时区是否适用于整个应用程序?否否……这取决于用户时间Z您的问题是什么?请说明可回答的问题,以便我们能够回答。我更新了我的问题。我想根据其开始时间和结束时间(基于时区更新)检查用户是否可用………此时区是否适用于整个应用程序?否否……取决于用户时间Z您的问题是什么?请陈述可回答的问题,以便我们能够回答。我更新了我的问题。我想根据用户的开始时间和结束时间(基于时间分区更新)检查用户是否可用…………谢谢:)你能回答这个问题吗?我在代码中添加了注释,解释了每一步发生的情况。您希望进一步详细说明什么?为什么我们得到服务器时间…我们的目的只是检查用户时间一个人不能只检查用户时间,它应该检查/比较。因为你有不同时区的用户,所以比较标准时间是有意义的。我选择服务器时间作为标准时间,因为您没有阐明您的原始意图。我只是展示了一个常见的模式。谢谢:)我理解:)谢谢:)你能帮我解释一下吗?我在代码中添加了注释,解释了每一步都发生了什么。您希望进一步详细说明什么?为什么我们得到服务器时间…我们的目的只是检查用户时间一个人不能只检查用户时间,它应该检查/比较。因为你有不同时区的用户,所以比较标准时间是有意义的。我选择服务器时间作为标准时间,因为您没有阐明您的原始意图。不管你想和什么做比较,我只是展示了一个共同的模式。谢谢:)我理解:)
server_tz = Time.zone # zone on server
server_now = server_tz.now # time on server right now

Time.use_zone(time_zone) do # ⇐ user’s time zone, 'Samoa'
  server_start, server_end = %i|start_time end_time|.map do |t|
    # ⇓ parse in user time zone and convert to server tz
    Time.zone.parse("#{Date.today} #{t}").in_time_zone(server_tz)
  end
  # ⇓ use case-triple-equal to check if time is in between
  (server_start..server_end) === server_now
end
server_tz = Time.zone # zone on server
server_now = server_tz.now # time on server right now

Time.use_zone(time_zone) do # ⇐ user’s time zone, 'Samoa'
  server_start, server_end = %i|start_time end_time|.map do |t|
    # ⇓ parse in user time zone and convert to server tz
    Time.zone.parse("#{Date.today} #{t}").in_time_zone(server_tz)
  end
  # ⇓ use case-triple-equal to check if time is in between
  (server_start..server_end) === server_now
end