我已经为两个字段添加了日期时间验证(从,结束时开始)我的参数如下
"user"=>{
"starts_at(1i)"=>"2013",
"starts_at(2i)"=>"12",
"starts_at(3i)"=>"3",
"starts_at(4i)"=>"09",
"starts_at(5i)"=>"47",
"ends_at(1i)"=>"2013",
"ends_at(2i)"=>"12",
"ends_at(3i)"=>"10",
"ends_at(4i)"=>"01",
"ends_at(5i)"=>"47"}
controller.rb
def create
ann = params[:user]
start_date = DateTime.civil ann["starts_at(1i)"].to_i, ann["starts_at(2i)"].to_i, ann["starts_at(3i)"].to_i, ann["starts_at(4i)"].to_i, ann["starts_at(5i)"].to_i
end_date = DateTime.civil ann["ends_at(1i)"].to_i, ann["ends_at(2i)"].to_i, ann["ends_at(3i)"].to_i, ann["ends_at(4i)"].to_i, ann["ends_at(5i)"].to_i
if start_date <= end_date
//codes to create user page
else
flash[:notice] = 'Ends at should be greater than starts at'
render :action => 'new'
end
end
以上仅验证日期字段。它不会显示时间字段的验证。如果我检查starts_at
和ends_at
,我的日志会给出
Tue, 03 Dec 2013 09:47:00 +0000
Tue, 10 Dec 2013 01:47:00 +0000
如何更改代码以验证时间?
答案 0 :(得分:0)
将DateTime转换为Timestamp后尝试进行比较。由于时间戳是一个整数值,因此计算会更准确。