特定の日付までの残り日数を確認するにはどうすればよいですか?
たとえば、今日から 3 日後に何らかのロジックの実行を開始したいですか? 今日の日付をハード コーディングして、今を減算しますが、どうすればよいでしょうか。
編集
私がやりたいことは、今後3日間、モデルでのデバイス確認メールを無効にすることです.
if Rails.env== 'production' && (three days left sense 1/7/2013)
devise :confirmable
end
特定の日付までの残り日数を確認するにはどうすればよいですか?
たとえば、今日から 3 日後に何らかのロジックの実行を開始したいですか? 今日の日付をハード コーディングして、今を減算しますが、どうすればよいでしょうか。
編集
私がやりたいことは、今後3日間、モデルでのデバイス確認メールを無効にすることです.
if Rails.env== 'production' && (three days left sense 1/7/2013)
devise :confirmable
end
なぜわざわざ?
if Rails.env== 'production' && Time.now.strftime("%Y%m%d").to_i >= 20130110
devise :confirmable
end
私がそれを正しく理解しているなら、
開始時刻を変数に保存し、それを現在の時刻と照合するだけで (差を秒単位で取得できます)、それが 72 (3 日) より大きい場合は、if
ステートメントが実行されます。
require 'time'
start_time=Time.now
if Rails.env== 'production' && ( (Time.new - start_time)/3600 >72 )
devise :confirmable
end
time_diff gem を使用して、年、月、週、日、時、分、秒の違いを取得します。これは、私が行ったように簡単に達成できます。
これを確認してください -Railsは時差を計算します
そこで答えが得られます。
あなたのクラスでは、最初に日付を設定する必要があります。
あなたの場合、次のようなことをする必要があります:
("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
試す
if Time.now >= <your_time_object> + 3.days
# start executing some logic
end