2016-08-11 3 views
0

クイック質問。私はdistance_of_time_in_wordsヘルパーを使用してオブジェクトの作成日数を確認しています。これはうまく動作しますが、24時間経過して1日をカウントする必要はありませんが、「00:00」になると「1」日後にカウントします。Rails DateTimeヘルパーロジック

たとえばdistance_of_time_in_words( "2016-08-11 11 :00 "、" 2016-08-12 00:00 ")は1日で13時間です

一度" 00:00 "を過ぎると1日になりますか?

+0

あなたが提案するロジックは、オブザーバーがどのタイムゾーンにあるかによって大きく異なることに注意してください。サーバからこの値を提供している場合、訪問者が同じタイムゾーンに入らない可能性が高くなります。 (この恣意的な要件を満たすために必要なカスタムロジックと努力は本当に価値があると考えています) –

+0

非常に真実ですが、今のところ私のタイムゾーンでしか作業しません。私が本当に必要とするスマートスマートスマートスマート –

答えて

2

あなたは*「今」時間を加え断念することを可能にして作成され、日付戻って深夜に移動することで、あなたが1を越えるだろう

time_ago_in_words(date_item_was_created.at_midnight) 

time_ago_in_wordsを使用することができるかもしれ次の真夜中に、 の日のマークを付けます。 API docによれば、それはあなたが何をしているかのように聞こえる、一日以上の何かのためのあなたの周りの日を与える必要があります。

*現在の時刻と比較していない場合は、引き続きdistance_of_time_in_wordsを使用できます。

+0

を指摘してくれてありがとうございますat_midnight –

0

これはあなたが私が推測したことです。

def distance_of_time_in_words(time1,time2) 

    d1 = Time.parse(time1.to_s).to_date.strftime("%d").to_i 
    d2 = Time.parse(time2.to_s).to_date.strftime("%d").to_i 
    seconds = Time.parse(time2.to_s)- Time.parse(time1.to_s) 
    hours = seconds/3600 

    if d2-d1 >= 1 
    return "#{(d2-d1).to_s} days" 
    else 
    return "#{hours.to_s} hours" 
    end 

end 
関連する問題