2011-08-26 5 views
2

나는 Heroku의 Daily Cron 애드온을 사용하여 하루에 한 번 실행되는 cron 작업을 가지고 있습니다. cron은 어제의 데이터에서 값을 가져 와서 오늘의 타임 스탬프가있는 필수 개체를 만듭니다. 그러나 나는 특별한 상황에 직면하고있다. 이것은 Heroku 콘솔에서 나온 것입니다 :Heroku 콘솔 이상한 날짜 문제

>> Date.today 
=> Thu, 25 Aug 2011 
>> Date.yesterday 
=> Thu, 25 Aug 2011 
>> DateTime.now 
=> Thu, 25 Aug 2011 23:31:42 -0700 

현재 시간은 23:31이며 나중에 시도해 보았습니다. 이것은 내가 지금 가지고있는 것입니다 :

>> Date.today 
=> Fri, 26 Aug 2011 
>> Date.yesterday 
=> Thu, 25 Aug 2011 
>> DateTime.now 
=> Fri, 26 Aug 2011 00:35:14 -0700 

왜 Date.today와 Date.yesterday가 같은 결과를 제공하는지 알아보십시오. 시간대 또는 기타 특정 설정으로 인한 것입니까?

감사합니다.

+0

나에게 버그 같은 소리 Date.today에 변화가 없지만, 당신이 설정할 수있는 heroku를 통한 heroku의 시간대 설정 : TZ = Europe/Berlin 추가 – phoet

답변

3

Date.today는 사용자가 설정 한 시간대와 상관없이 서버 시간에 따른 날짜를 나타냅니다.

Date.yesterday는 Time.now.in_time_zone - 1.day입니다.

ruby-1.9.2-p180 :014 > Time.now => 2011-08-26 03:21:10 +0545

ruby-1.9.2-p180 :015 > Time.zone => (GMT+00:00) UTC

ruby-1.9.2-p180 :016 > Time.now.in_time_zone => Thu, 25 Aug 2011 21:36:40 UTC +00:00

ruby-1.9.2-p180 :018 > Date.yesterday => Wed, 24 Aug 2011

ruby-1.9.2-p180 :017 > Date.today => Fri, 26 Aug 2011

: 그것은 우리가이 예제를 명확히해야

설정 한 Time.zone에 따라 달라집니다

이제 시간대를 카트만두로 설정 한 후 Date.yesterday 변화가 예상되지만이

ruby-1.9.2-p180 :019 > Time.zone="Kathmandu" => "Kathmandu"

ruby-1.9.2-p180 :022 > Time.now.in_time_zone => Fri, 26 Aug 2011 03:55:28 NPT +05:45

ruby-1.9.2-p180 :020 > Date.yesterday=> Thu, 25 Aug 2011

ruby-1.9.2-p180 :021 > Date.today => Fri, 26 Aug 2011

+0

음 ... 문제가 될 것으로 생각됩니다. so, Date.yesterday는 Time.now.in_time_zone - 1.day입니다. – prasvin

2

날짜. 오늘은 루비가 제공하는 기본 방법입니다. Date.Yesterday. 어제는 루비 메소드가 아니지만 Rails가 핵심 확장의 일부로 제공합니다. 레일 문서에서 인용

Date.Yesterday이

이 Time.zone 또는 config.time_zone이 설정된 경우 Time.zone.today를 돌려 Date.current.yesterday

Date.Current을 반환 그렇지 않으면 단지 날짜를 반환 .today

두 방법 모두에서 동일한 날짜가 표시되는 것 같습니다.

+0

시간대가 설정되지 않은 위의 예제의 첫 번째 경우와 반대가됩니다. Date.current는 Date.today 일 수 없습니다. 왜냐하면 Date.yesterday는 Wed가 아니라 Wed로 표시되기 때문입니다. 첫 번째 경우는 표준 시간대가 설정된 인스턴스입니까? 나는 시간대가 그렇지 않으면 hv가되어서는 안된다고 생각한다. 그래야만 당신과 Abhaya가 서로를 지원합니다. 어쨌든 덕분에 . – prasvin