如何判断时间/日期是否为今天,红宝石?

qic*_*ren 11 ruby ruby-on-rails

我有一个解决方案,我想判断一下return_service_date是否是今天,该怎么做?

这是我的代码(rails):

if settlement.return_service_date && 
   settlement.return_service_date.to_s(:date) == Time.now.to_s(:date)
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

mol*_*olf 22

在Rails中,您可以:

settlement.return_service_date.today?
Run Code Online (Sandbox Code Playgroud)


mad*_*ode 8

对于没有使用rails的每个人,我的带有Time的纯红宝石解决方案如下所示,如果你有Dates而不是Times,你可以用.to_time()转换它们

    # current time
    time = Time.new()

    # some time
    some_time = Time.new() + 7550

    # set beginning of today
    today_start =  Time.new(time.year,time.month,time.day)

    # set ending of today
    today_end =  today_start + 86399

    # check if some_time is in between today start and end
    puts (today_start..today_end).cover?(some_time)
Run Code Online (Sandbox Code Playgroud)

根据您当前的时间,它打印为真(如果您的一天仍然至少有7550秒)或错误.