Ruby:比较两个时间对象的日期
在Ruby中比较两个时间对象的日期的最佳方法是什么 我有两个对象,例如:Ruby:比较两个时间对象的日期,ruby,date,datetime,time,Ruby,Date,Datetime,Time,在Ruby中比较两个时间对象的日期的最佳方法是什么 我有两个对象,例如: time_1 = Time.new(2012,12,10,10,10) time_2 = Time.new(2012,12,11,10,10) 在本例中,日期比较应返回false 否则,相同日期但不同时间应返回true: time_1 = Time.new(2012,12,10,10,10) time_2 = Time.new(2012,12,10,11,10) 我曾尝试使用适用于DateTime对象的.to\u da
time_1 = Time.new(2012,12,10,10,10)
time_2 = Time.new(2012,12,11,10,10)
在本例中,日期比较应返回false
否则,相同日期但不同时间应返回true:
time_1 = Time.new(2012,12,10,10,10)
time_2 = Time.new(2012,12,10,11,10)
我曾尝试使用适用于
DateTime
对象的.to\u date
,但它不受Time
的支持。to\u date在ruby 2.0、ruby 1.9.3和ruby 1.9.2中运行良好
我已经证实这对我有效:
time_1.strftime("%F") == time_2.strftime("%F")
%F
格式仅返回日期部分。可能只是以这种方式进行测试:
time_1.year == time_2.year && time_1.yday == time_2.yday
它将比字符串比较消耗更少的资源
猴子补丁的课堂时间与此方法,我会很高兴阅读
class Time
def date_compare(time)
year == time.year && yday == time_2.yday
end
end
time_1.date_compare time_2
只需输入stdlib的“日期”部分,然后比较日期:
require "date"
time1.to_date == time2.to_date
工作完成。在比较两个时间对象时,
或=
有什么问题?只要如果time_1==time_2…
time_1==time_2#=>falsetime_1NoMethodError:undefined method
to_date',用于2012-12-10 10:10:00+0100:Time`嗨,我在createdAt中有一列,其值为“2016-06-13T08:59:58+00:00”,我想通过createdAt运行一个查询来查找对象,并从前端发送“2016-06-13”。如何按日期(不包括时间)查找对象?提前谢谢
class Time
def date_compare(time)
year == time.year && yday == time_2.yday
end
end
time_1.date_compare time_2
require "date"
time1.to_date == time2.to_date