可能重复:
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
我的回答我说谢谢
答案 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'
加载它。您应该尝试使用代表您正在使用的事物的特定类。使用Integer
或String
作为日期可以避免使用像Ruby这样的完全面向对象语言中的许多强大的Date
特定功能。
由于您不仅要将日期作为输入而是完整的ISO-8601时间规范,您可能希望使用类似这样的内容来仅提取Date对象:
Time.parse('2012-11-20 12:30:45').to_date
您可能需要使用require 'time'