2016-09-08 6 views
1

두 날짜 (Time/DateTime 클래스) 사이의 시간차를 알고 싶습니다. Date 클래스에서 만든 날짜 하나와 다른 하나는 내 레일 모델에서 가져온 날짜입니다. 모델에서 오는 것은 Time 클래스에 속하므로, 그 사이의 일 수를 알고 싶습니다.루비를 사용하는 두 날짜 사이의 차이 얻기

@current_day = Date.new 
@created_day = establishment.created_at 

내가이 days_ago 기능을 사용하여이 결과를 얻는 시도했지만 그것은 개월 고려하지 않습니다.

+0

날짜가'Time' 또는'DateTime' 객체라고 말하지만 예제에는 문자열이 들어 있습니다. 또한 시작일부터 종료일까지 23 일이 아닌 22 일입니다. 그 사실을 명확히 해 주시겠습니까? – Stefan

+0

질문을 편집하게하십시오 – Teebo

답변

2
old_date = Date.parse('2016-08-10') 
new_date = Date.parse('2016-09-02') 

days_between = (new_date - old_date).to_i 

그렇지 않으면 결과가 Rational 클래스의 인스턴스가 될 수 있으므로 정수로 변환해야합니다. 편집 후 귀하의 질문에

솔루션 : 귀하의 질문에

@current_day = Date.new 
@created_day = establishment.created_at 

days_between = (@current_day - @created_day.to_date).to_i 
+0

나는이 오류를 '문자열을 암시 적으로 변환하지 않음'을 얻었습니다. 실제로 레일에 있습니다. 원인이 무엇인지 알 수 없습니다. – Teebo

+0

이것은 순수한 루비 솔루션입니다. Rails 나 다른 프레임 워크를 사용하고 있다면 상관 없습니다. 이 오류 메시지에 따르면 Date 클래스의 인스턴스를 string으로 변환하려고합니다. 내가 제안한 코드가 작동 중이다. –

-1

솔루션 :이 작동이 하나를 시도하십시오. 당신이 (결과를 인쇄 할 경우

days_between = ("화 10월 24일 세계 협정시 09시 20분 25초 2017".to_date .. "금 10월 27일 세계 협정시 11시 20분 8초 2017".to_date는)

을 .count days_between) 결과가 4로 표시됩니다.