Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 计算特定时区中特定时间的秒数_Ruby_Time - Fatal编程技术网

Ruby 计算特定时区中特定时间的秒数

Ruby 计算特定时区中特定时间的秒数,ruby,time,Ruby,Time,我想在我的所有用户所在时区的特定时间触发通知。我想计算服务器在触发通知之前应该等待的延迟。我可以使用time.now.in\u时区(person.time\u Zone)计算用户时区的时间 我可以从那个时间中去掉小时、分和秒,然后找出特定时间剩下的秒数。但是,我想知道是否有一种更优雅的方法,我可以在时区中设置今天和明天的上午9:00,并将其与时间进行比较。现在。在时区中(person.Time\u zone),只需在ruby Time类中使用算术运算找出秒数 或者简言之,我的问题是:(在否决票之

我想在我的所有用户所在时区的特定时间触发通知。我想计算服务器在触发通知之前应该等待的延迟。我可以使用time.now.in\u时区(person.time\u Zone)计算用户时区的时间

我可以从那个时间中去掉小时、分和秒,然后找出特定时间剩下的秒数。但是,我想知道是否有一种更优雅的方法,我可以在时区中设置今天和明天的上午9:00,并将其与时间进行比较。现在。在时区中(person.Time\u zone),只需在ruby Time类中使用算术运算找出秒数

或者简言之,我的问题是:(在否决票之前!)

我如何计算到纽约下一个上午9点的秒数

这个怎么样

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这在控制台上有效吗?您可能会得到一些价值