2013-07-03 2 views
1

나는 두 개의 DateTime 객체를 가지고 있는데 하나는 과거에, 다른 객체는 현재의 datetime을 나타낸다. 두 분 사이에 몇 분이 지났는지 확인하려고합니다.이 DateTime 빼기 작업이 잘못된 결과를 반환하는 이유는 무엇입니까?

past = "Wed, 03 Jul 2013 00:59:39 UTC +00:00".to_datetime 
now = "Wed, 03 Jul 2013 01:04:19 +0100".to_datetime 

seconds = (now - past)    #result is (-83/2160) 

올바르지 않습니다. 초는 280, 두 번 사이에 경과 한 초 수이어야합니다.

답변

1

두 개의 DateTimes를 뺀 값은 경과 된 시간을 일 단위로 반환합니다.

past = "Wed, 03 Jul 2013 00:59:39 UTC +00:00".to_datetime 
now = "Wed, 03 Jul 2013 01:04:19 +0100".to_datetime 
seconds = (now - past) * 1.day 
# => -3320.0 

을 또는 당신은 할 수 :

그래서 당신은 할 수있는 결과 때문에 시간대의 부정적

seconds = (now.to_i - past.to_i) 
# => -3320 

※.

past.utc 
# => Wed, 03 Jul 2013 00:59:39 +0000 
now.utc 
# => Wed, 03 Jul 2013 00:04:19 +0000 

당신은 now 실제로 past보다 오래된 것을 볼 수 있습니다.

+0

감사합니다. 위의 코드를 실행할 때 -3320이 표시됩니다. – Jason

+0

@ Jason 어디서 구할 수 있습니까? 사용중인 코드는 무엇입니까? – oldergod

+0

예제 코드를 한 줄씩 실행합니다. 나는 루비를 사용하고있다 1.9.3p429 – Jason

관련 문제