如何在铁轨上制作循环天红宝石?

时间:2012-11-08 06:10:13

标签: ruby-on-rails ruby ruby-on-rails-3

  

可能重复:
  how to iterating days

我有一个用于循环days.this的代码来制作树叶。我希望列登录和注销将在startdate自动开始并在enddate结束。

**exp I input :**
startdate: 2012-11-08 01:30:00
enddate: 2012-11-10 01:30:00
**i want output like this:** 

2012-11-08 01:30:00
2012-11-09 01:30:00
2012-11-010 01:30:00

 for i in 0..((@leafe.enddate - @leafe.startdate).to_i)
                 @attendance = Attendance.new

                 @attendance.signin = '2012-11-08 01:30:00' #value must change automatically
                 @attendance.signout = '2012-11-08 10:30:00'#value must change automatically
                 @attendance.user_id = @leafe.user_id
                 @attendance.save
            end

我的回答我说谢谢

1 个答案:

答案 0 :(得分:1)

我在理解您的问题描述时遇到了问题。我猜你想要迭代一系列日期。

start_date = Date.new(2012, 11, 8)
end_date   = Date.new(2012, 11, 23)

(start_date .. end_date).each do |date|
  …
  # Do something with date here
  …
end

请注意,我在这里使用Date课程。您可能需要先使用require 'date'加载它。您应该尝试使用代表您正在使用的事物的特定类。使用IntegerString作为日期可以避免使用像Ruby这样的完全面向对象语言中的许多强大的Date特定功能。

由于您不仅要将日期作为输入而是完整的ISO-8601时间规范,您可能希望使用类似这样的内容来仅提取Date对象:

Time.parse('2012-11-20 12:30:45').to_date

您可能需要使用require 'time'

加载它