2013-01-07 40 views
2

如何查看特定日期之前剩餘的天數?如何查看特定日期之前的時間?

例如,我想從今天起3天后開始執行一些邏輯?今天的日期我會很難編碼,現在從中減去,但是怎麼樣?

編輯

我想要做的就是在模型禁用色器件確認電子郵件,未來三天,

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

將它存儲在一個文件中? – ChiefTwoPencils

+0

不,只是在代碼 – simo

+0

你能解釋一下你自己嗎?我不知道你在問什麼。 – MichaelR

回答

1

爲什麼要麻煩?

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

不錯的技巧,所以你比較兩個整數.. – simo

0

使用time_diff寶石來獲得在一年方面的差異,一個月,一週,一天,一小時,一分鐘和二次,這些都可以輕鬆實現。

入住這一點 - Rails calculate time difference

,你會得到你的答案出現。

+0

是否難以使用寶石?我希望代碼是一行或兩行,對嗎? – simo

0

如果即時得到它的權利,

你剛剛保存的開始時間在變量 然後檢查其對當前時間(你會在數秒內獲得差異) ,如果它更大然後72(3天)將完成if聲明。

require 'time' 
start_time=Time.now 

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

不錯,但是,我需要硬編碼start_time,否則時差將始終爲零 – simo

+0

您的程序結束,您希望它在3天后自行重新啓動? – MichaelR

+0

它不是一個程序,它的一個網站 – simo

0
在你的類

首先你要設置日期 例如:

你的情況

你需要做的是這樣的:

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

技術TO_TIME make`s你能選擇時間(天,周,月,年)

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 
+0

x.date?你能填一個真實的日期例子嗎? – simo

+0

檢查我的編輯帖子上面的鏈接。 –

0

嘗試

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