Ruby 计算特定时区中特定时间的秒数
我想在我的所有用户所在时区的特定时间触发通知。我想计算服务器在触发通知之前应该等待的延迟。我可以使用time.now.in\u时区(person.time\u Zone)计算用户时区的时间 我可以从那个时间中去掉小时、分和秒,然后找出特定时间剩下的秒数。但是,我想知道是否有一种更优雅的方法,我可以在时区中设置今天和明天的上午9:00,并将其与时间进行比较。现在。在时区中(person.Time\u zone),只需在ruby Time类中使用算术运算找出秒数 或者简言之,我的问题是:(在否决票之前!) 我如何计算到纽约下一个上午9点的秒数 这个怎么样Ruby 计算特定时区中特定时间的秒数,ruby,time,Ruby,Time,我想在我的所有用户所在时区的特定时间触发通知。我想计算服务器在触发通知之前应该等待的延迟。我可以使用time.now.in\u时区(person.time\u Zone)计算用户时区的时间 我可以从那个时间中去掉小时、分和秒,然后找出特定时间剩下的秒数。但是,我想知道是否有一种更优雅的方法,我可以在时区中设置今天和明天的上午9:00,并将其与时间进行比较。现在。在时区中(person.Time\u zone),只需在ruby Time类中使用算术运算找出秒数 或者简言之,我的问题是:(在否决票之
NOTIFICATION_HOUR = 9
local_time = Time.now.in_time_zone(person.time_zone)
desired_time = local_time.hour >= NOTIFICATION_HOUR ? local_time + 1.day : local_time
desired_time = Time.new(desired_time.year, desired_time.month, desired_time.day, NOTIFICATION_HOUR, 0, 0, desired_time.utc_offset)
return desired_time - local_time
next9am = Time.now.in_time_zone(person.time_zone).seconds_until_end_of_day + 3600 * 9
next9am -= 24 * 60 * 60 if Time.now.in_time_zone(person.time_zone).hour < 9
next9am=Time.now.in\u时区(person.Time\u zone)。到\u天的\u结束\u的秒数+3600*9
下一个上午9点-=24*60*60如果时间现在在时区(个人时区)。小时<9
这是个问题。如果是当地时间早上6点怎么办?不要认为这是一个有效的比较:time.now.in_time_zone(person.time_zone)<9这在控制台上有效吗?您可能会得到一些价值