Rails에서 현재 시간에 10 일을 추가하는 방법


106

나는 같은 것을 시도했다

Time.now + 5.days

그러나 그것은 작동하지 않습니다. 비록 제가보기에 아주 감동 받았던 기억이 막연하게도, 그런 일을 할 수 있다는 것을 기억합니다 2.years.

Rails 3에서는 어떻게하나요?


작동합니다. 어떤 오류가 발생합니까?

그래도 작동해야합니다. 레일에있을 때 Time.zone.now가 더 적절하게 들립니다
Ben

답변:


284

사용하다

Time.now + 10.days

또는

10.days.from_now

둘 다 확실히 작동합니다. Ruby뿐만 아니라 Rails를 사용하고 계십니까?

확실히 Rails에 있다면 어디에서 실행하려고하나요? Active Support를로드해야합니다.


@yuval이 레일에서 작동하지 당신은 그러나 다만 도움말 다른 사람에게 그것을 가지고 ruby..Think
Catmandu

1
이것은 환상적입니다. 나는 Ruby와 Rails를 좋아한다.
wpp

5
미묘한 차이가 있습니다. Time.now + 10.days항상 시스템 시간대 10.days.from_now를 선택 하지만 rails 설정에 아무것도 설정되어 있지 않으면 UTC 시간대를 선택합니다.
Babistalikesflyingonrails

일반적으로, 사용하는 것이 가장 좋습니다 Time.zone.now대신에 Time.now.
x-yuri

21

days, years등은 Active Support의 일부이므로에서는 작동하지 않지만에서 작동 irb해야합니다 rails console.


yeup-자리에. 바닐라 루비로는 할 수 없습니다.
Yuval Karmi 2011 년

1
irb에서도 작동합니다. gem이 설치되어 require 'active_support/time'있는 경우 세션 시작시 또는 명령을 사용하기 전에 a를 수행하십시오
darkdefender27

10

이것은 확실히 작동하며 현재 날짜에 날짜를 추가해야 할 때마다 이것을 사용합니다.

Date.today() + 5

10

참고 용으로 몇 가지 다른 옵션

-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)

내가 아는 모든 옵션을 나열하십시오.

[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10

이제 시간대에 관심이 있다면 차이점은 무엇입니까?

  • [1, 4] 시스템 시간대 사용
  • [2, 3] Rails 앱의 시간대 설정
  • [5] 결과에 시간이 포함되지 않은 날짜 만

4

Rails에서 시도해보세요

Time.new + 10.days 

Ruby에서 시도해보세요.

require 'date'
DateTime.now.next_day(10).to_time

2

Ruby에서 시도해보세요. 미래의 지정된 일 수에 새 날짜 / 시간을 반환합니다.

DateTime.now.days_since(10)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.