2

如何查看距离特定日期还有多少天?

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

编辑

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

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

5 回答 5

1

何苦?

if Rails.env== 'production' && Time.now.strftime("%Y%m%d").to_i >= 20130110
    devise :confirmable 
end
于 2013-01-07T14:29:17.870 回答
0

使用time_diff gem 来获得年、月、周、日、小时、分钟和秒的差异,我这样做很容易实现。

检查这个 - Rails 计算时差

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

于 2013-01-07T10:27:54.243 回答
0

如果我做对了,

您只需将开始时间存储在一个变量中,然后根据当前时间检查它(您将以秒为单位获得差异),如果它大于 72(3 天),则该if语句将完成。

require 'time'
start_time=Time.now

if Rails.env== 'production' && ( (Time.new - start_time)/3600 >72 )
   devise :confirmable
end
于 2013-01-07T10:32:25.183 回答
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
于 2013-01-07T10:34:57.397 回答
0

尝试

if Time.now >= <your_time_object> + 3.days
  # start executing some logic
end
于 2013-01-07T11:33:23.230 回答