顯示兩個給定時間之間的 15 分鐘步長 (display 15-minute steps between two given times)


問題描述

顯示兩個給定時間之間的 15 分鐘步長 (display 15‑minute steps between two given times)

I have an appointments table which saves 2 times. start and end. I want to display all appointments in 15 minute steps. e.g. given 10am /11am, now display me 10.15, 10.30, 10.45 in my view! Thx for advise!

‑@appointment.each do |form|  
  =form.date  
  =form.start_time  
  =form.end_time

‑‑‑‑‑

參考解法

方法 1:

I have an one‑liner, but is this what you really want? And hopefully the delta between this two dates isn't too big, the code below isn't very efficient.

(Time.now.to_i..1.hour.from_now.to_i).to_a.in_groups_of(15.minutes).collect(&:first).collect { |t| Time.at(t) }  

Better solution:

# Your variables
time_start = Time.now
time_end = time_start + 1.hour
[time_start].tap { |array| array << array.last + 15.minutes while array.last < time_end }

I added to to Ruby's Time instance methods:

class Time
  def to(to, step = 15.minutes)
    [self].tap { |array| array << array.last + step while array.last < to }
  end
end

so you end up with code like this:

time_start.to(time_end)

All three solutions will end in an array containing Time objects of steps.

 => [2011‑07‑22 17:11:11 +0200, 2011‑07‑22 17:26:11 +0200, 2011‑07‑22 17:41:11 +0200, 2011‑07‑22 17:56:11 +0200, 2011‑07‑22 18:11:11 +0200] 

方法 2:

you just need to pass option :minute_step => 15 to the input fields

(by danielMario Uhernaren)

參考文件

  1. display 15‑minute steps between two given times (CC BY‑SA 3.0/4.0)

#datetime #ruby-on-rails #loops #ruby






相關問題

NHibernate:HQL:從日期字段中刪除時間部分 (NHibernate:HQL: Remove time part from date field)

如何獲得在給定時間內發送超過 X 個數據包的 IP (How do I get IPs that sent more than X packets in less than a given time)

Памылка дадання даты пры адніманні ад 0:00 (Dateadd error when subtracting from 0:00)

查找與日曆相比缺失的日期 (Find missing date as compare to calendar)

CodeReview:java Dates diff(以天為單位) (CodeReview: java Dates diff (in day resolution))

顯示兩個給定時間之間的 15 分鐘步長 (display 15-minute steps between two given times)

如何在 C# 中獲取月份名稱? (How to get the month name in C#?)

fromtimestamp() 的反義詞是什麼? (What is the opposite of fromtimestamp()?)

構建 JavaScript 時缺少模塊 (Missing Module When Building JavaScript)

setTimeout 一天中的特定時間,然後停止直到下一個特定時間 (setTimeout for specific hours of day and then stop until next specific time)

將浮點數轉換為 datatime64[ns] (Converting float into datatime64[ns])

Python Dataframe 在連接時防止重複 (Python Dataframe prevent duplicates while concating)







留言討論