시간없이 Rails DateTime.now


91

DateTime.now를 사용하여 현재 날짜를 가져 와서 시간을 "제거"해야합니다.

예를 들어, 이것은 내가 원하지 않는 것을 보여줍니다 .DateTime.now => Sat, 19 Nov 2011 18:54:13 UTC +00:00

내가 어떻게이 공연 할이 원하는 :DateTime.now.some_operation => 2011-11-06 00:00:00 UTC


11
시간이없는 DateTime은 Date입니다 :) Date.today를 의미합니까?
ajahongir 2013-09-17

답변:


175

다음 중 하나를 사용할 수 있습니다.

  • DateTime.current.midnight
  • DateTime.current.beginning_of_day
  • DateTime.current.to_date

@sekmo starting_of_day는 activesupport (rails)의 일부입니다.
이고르 Kapkov

3
DateTime.now영역없이 사용 하지 않는 것이 좋습니다 . 그것은 중 하나를 사용하는 것이 좋습니다 Time.zone.now, DateTime.current, DateTime.now.in_time_zone, DateTime.now.utc, DateTime.now.getlocal, DateTime.now.iso8601, DateTime.now.jisx0301, DateTime.now.rfc3339, DateTime.now.to_i, DateTime.now.to_f대신.
Bryan Dimas

감사합니다 @BryanDimas, 귀하의 의견이 도움이됩니다. 다른 국가로 IP를 채널하는 경우 VPN이 영향을 미칠 수 있습니까?
Jenuel Ganawed

21

필요한 것은 strftime 함수입니다.

Time.now.strftime("%Y-%d-%m %H:%M:%S %Z")

당신이 예상하는가하는 데이터베이스에 데이터를 삽입하는 경우 심각한 문제가 발생할 수 %Y-%m-%d %H:%M:%S는 월, 일 값을 반전하므로 데이터 포맷
quetzaluz

내 제안은 함수의 strftime, 그에 따라 자신을 사용자 정의 할 수 있습니다 사용 된 형식을 사용하는 것이 었습니다
부사장.


4

에 만족하는 require 'active_support/core_ext'경우 다음을 사용할 수 있습니다.

DateTime.now.midnight # => Sat, 19 Nov 2011 00:00:00 -0800

1
그냥 당신이 생각 있도록 레일 루비에 태그를 발견 하다 ActiveSupport : 필요 행복
존 M


1

시간없이 오늘 날짜를 원한다면 Date.today


0

그것을 알아 냈습니다. 이것은 작동합니다 :

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