如何查看特定日期之前的时间?

时间:2013-01-07 09:50:19

标签: ruby ruby-on-rails-3

如何查看特定日期之前剩余的天数?

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

修改

我想要做的是在接下来的三天禁用模型的设计确认电子邮件,

if Rails.env== 'production' && (three days left sense 1/7/2013)
   devise :confirmable
end

5 个答案:

答案 0 :(得分:1)

为什么要这么麻烦?

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

答案 1 :(得分:0)

使用time_diff gem来获得年,月,周,日,时,分和秒的差异,这可以很容易地实现。

检查一下 -  Rails calculate time difference

你会在那里得到答案。

答案 2 :(得分:0)

如果我做对了,

您只需将开始时间存储在变量中 然后检查当前时间(你会在几秒钟内得到差异) 如果它大于72(3天),则if语句将完成。

require 'time'
start_time=Time.now

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

答案 3 :(得分:0)

首先,你必须在课堂上设定日期 例如:

在你的情况下你需要做这样的事情:

  ("object name".date.to_time<=time.now+3)
   (do something)if x.date.to_time<=today

技术to_time使你能够选择时间(日,周,月,年)

ENV.all.each do|env|
  where (env.date.to_time<= Time.now+3)
   if Rails.env== 'production' && (env.date.to_time== today)
      devise :confirmable
   end

答案 4 :(得分:0)

if Time.now >= <your_time_object> + 3.days
  # start executing some logic
end