2

特定の日付までの残り日数を確認するにはどうすればよいですか?

たとえば、今日から 3 日後に何らかのロジックの実行を開始したいですか? 今日の日付をハード コーディングして、今を減算しますが、どうすればよいでしょうか。

編集

私がやりたいことは、今後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

私がそれを正しく理解しているなら、

開始時刻を変数に保存し、それを現在の時刻と照合するだけで (差を秒単位で取得できます)、それが 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

time_diff gem を使用して、年、月、週、日、時、分、秒の違いを取得します。これは、私が行ったように簡単に達成できます。

これを確認してください -Railsは時差を計算します

そこで答えが得られます。

于 2013-01-07T10:27:54.243 に答える
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 に答える