2016-08-11 7 views
0

빠른 질문. distance_of_time_in_words 도우미를 사용하여 개체 생성 일수를 확인합니다. 이것은 잘 작동하지만 24 시간이 지나야 하루를 계산하기를 원하지만 "00:00"이되면 "1"일을 계산하려고합니다.레일즈 DateTime 헬퍼 로직

예 : distance_of_time_in_words ("2016-08-11 11 : 00 ","2016-08-12 00:00 ")은 1 일이어야하지만 13 시간입니다

일단"00:00 "이 지나면 1 일로 계산해야합니까?

+0

제안하는 논리는 관찰자가있는 시간대에 따라 크게 달라집니다. 서버에서이 값을 제공하는 경우 방문자가 동일한 시간대에 있지 않을 가능성이 있습니다. (고려해 보면 ...이 임의적 요구 사항을 실제로 충족시키는 데 필요한 사용자 지정 논리 및 노력은 무엇입니까?) –

+0

매우 사실 일 것입니다. 그러나 지금은 내 시간대로만 작업하게 될 것입니다. 그걸 지적 해 주셔서 감사합니다. –

답변

2

당신은

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