Ruby 如何检查到特定日期的剩余时间?

Ruby 如何检查到特定日期的剩余时间?,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我如何检查离特定日期还有多少天 例如,我想从今天起3天后开始执行一些逻辑?我将硬编码今天的日期,现在从中减去,但如何 编辑 我想做的是在接下来的三天内禁用model上的设计确认电子邮件 if Rails.env== 'production' && (three days left sense 1/7/2013) devise :confirmable end 使用gem来获得年、月、周、日、时、分和秒的差异,就像我这样做很容易实现 检查这个- 你会在那里得到你的答案。如

我如何检查离特定日期还有多少天

例如,我想从今天起3天后开始执行一些逻辑?我将硬编码今天的日期,现在从中减去,但如何

编辑

我想做的是在接下来的三天内禁用model上的设计确认电子邮件

if Rails.env== 'production' && (three days left sense 1/7/2013)
   devise :confirmable
end
使用gem来获得年、月、周、日、时、分和秒的差异,就像我这样做很容易实现

检查这个-


你会在那里得到你的答案。

如果我答对了

您只需将开始时间存储在变量中 然后对照当前时间进行检查(以秒为单位获得差异) 如果大于72(3天),则执行
if
语句

require 'time'
start_time=Time.now

if Rails.env== 'production' && ( (Time.new - start_time)/3600 >72 )
   devise :confirmable
end

在你的课堂上,首先你必须确定日期 e、 g:

在您的情况下,您需要这样做:

  ("object name".date.to_time<=time.now+3)
   (do something)if x.date.to_time<=today
(“对象名”.date.to\u time试试看

如果Time.now>=+3.0天
#开始执行一些逻辑
结束
何必麻烦呢

if Rails.env== 'production' && Time.now.strftime("%Y%m%d").to_i >= 20130110
    devise :confirmable 
end

你能更好地解释一下吗?我不知道你在问什么。不,我的意思是代码将继续运行三天,还是程序将在某个时候重新启动/在这三天之后,它将永远运行..那么程序是一直运行吗?还是应该从现在开始只运行三天?如果你要硬编码的话日期,然后硬编码要使用的日期,而不是今天。然后将date.today与日期(2013,1,10)进行比较使用gem有那么难吗?我希望代码是一行或两行,对吗?x.date?你能填写一个真实的日期示例吗?很好,但是,我需要硬编码开始时间,否则时差总是为零。你的程序结束后,你想让它在3天后自行重新开始吗?这不是程序,而是网站
if Time.now >= <your_time_object> + 3.days
  # start executing some logic
end
if Rails.env== 'production' && Time.now.strftime("%Y%m%d").to_i >= 20130110
    devise :confirmable 
end