Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 Rails时间选择具有两个范围_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails时间选择具有两个范围

Ruby on rails Rails时间选择具有两个范围,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我必须显示一个选择框,其时间从上午9点到上午11点,然后是下午1点到下午3点,总共15分钟,如下所示: 9:00 AM 9:15 AM 9:30 AM . . . 10:45 AM 11:00 AM 01:00 PM 01:15 PM 01:30 PM . . . 2:45 PM 3:00 PM 上述范围是动态的,但有两个间隔。如何实现这一点?首先定义边界 start_time = DateTime.parse("9 AM").to_i start_interval = DateTime.pa

我必须显示一个选择框,其时间从上午9点到上午11点,然后是下午1点到下午3点,总共15分钟,如下所示:

9:00 AM
9:15 AM
9:30 AM
.
.
.
10:45 AM
11:00 AM
01:00 PM
01:15 PM
01:30 PM
.
.
.
2:45 PM
3:00 PM

上述范围是动态的,但有两个间隔。如何实现这一点?

首先定义边界

start_time = DateTime.parse("9 AM").to_i
start_interval = DateTime.parse("11 AM").to_i
end_interval = DateTime.parse("1 PM").to_i
end_time = DateTime.parse("3 PM").to_i
然后使用
范围
选择
获得所需值

values = (start_time..end_time).step(15.minutes).select{|t| t <= start_interval || t >= end_interval }

您可以在控制台中尝试此操作

> (start_time..end_time).step(15.minutes).select{|t| t <= start_interval || t >= end_interval }.map{ |t| Time.at(t).utc.to_datetime.strftime("%H:%M %p") }

=> ["09:00 AM", "09:15 AM", "09:30 AM", "09:45 AM", "10:00 AM", "10:15 AM", "10:30 AM", "10:45 AM", "11:00 AM", "13:00 PM", "13:15 PM", "13:30 PM", "13:45 PM", "14:00 PM", "14:15 PM", "14:30 PM", "14:45 PM", "15:00 PM"] 
>(开始时间..结束时间).步骤(15.分钟).选择{t | t=结束时间间隔}.map{t | time.at(t).utc.to_datetime.strftime(“%H:%M%p”)}
=>[“09:00 AM”,“09:15 AM”,“09:30 AM”,“09:45 AM”,“10:00 AM”,“10:15 AM”,“10:30 AM”,“10:45 AM”,“11:00 AM”,“13:00 PM”,“13:15 PM”,“13:30 PM”,“13:45 PM”,“14:00 PM”,“14:15 PM”,“14:30 PM”,“14:45 PM”,“15:00 PM”]

首先定义边界

start_time = DateTime.parse("9 AM").to_i
start_interval = DateTime.parse("11 AM").to_i
end_interval = DateTime.parse("1 PM").to_i
end_time = DateTime.parse("3 PM").to_i
然后使用
范围
选择
获得所需值

values = (start_time..end_time).step(15.minutes).select{|t| t <= start_interval || t >= end_interval }

您可以在控制台中尝试此操作

> (start_time..end_time).step(15.minutes).select{|t| t <= start_interval || t >= end_interval }.map{ |t| Time.at(t).utc.to_datetime.strftime("%H:%M %p") }

=> ["09:00 AM", "09:15 AM", "09:30 AM", "09:45 AM", "10:00 AM", "10:15 AM", "10:30 AM", "10:45 AM", "11:00 AM", "13:00 PM", "13:15 PM", "13:30 PM", "13:45 PM", "14:00 PM", "14:15 PM", "14:30 PM", "14:45 PM", "15:00 PM"] 
>(开始时间..结束时间).步骤(15.分钟).选择{t | t=结束时间间隔}.map{t | time.at(t).utc.to_datetime.strftime(“%H:%M%p”)}
=>[“09:00 AM”,“09:15 AM”,“09:30 AM”,“09:45 AM”,“10:00 AM”,“10:15 AM”,“10:30 AM”,“10:45 AM”,“11:00 AM”,“13:00 PM”,“13:15 PM”,“13:30 PM”,“13:45 PM”,“14:00 PM”,“14:15 PM”,“14:30 PM”,“14:45 PM”,“15:00 PM”]

你到底想要实现什么?我需要时间一样的东西,但需要一些时间不在这里列出你到底想要实现什么?我需要时间一样的东西,但需要一些时间不在那里列出