# Difference between two times

**URL:** <https://www.ruby-forum.com/t/difference-between-two-times/112718>\
**Category:** Rails\
**Created:** [August 22, 2007, 3:27pm UTC](https://www.ruby-forum.com/t/difference-between-two-times/112718 "2007-08-22T15:27:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Iain\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/6bbea6/32.png) [@Iain\_A](https://www.ruby-forum.com/u/Iain_A)\
**Post date:** [August 22, 2007, 3:27pm UTC](https://www.ruby-forum.com/t/difference-between-two-times/112718/1 "2007-08-22T15:27:21Z")

</div>

Hi

I have an object which has an expiration date. I want to calculate the  
amount of days, hrs and mins until the expiration time.

Does rails come with functions to do this? Also if the time has passed  
i want it to say 0 days 0 hrs and 0 mins.

Does anyone know a quick way to do this?

---

<div class="post-metadata">

**Author:** ![Iain\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/6bbea6/32.png) [@Iain\_A](https://www.ruby-forum.com/u/Iain_A)\
**Post date:** [August 22, 2007, 3:47pm UTC](https://www.ruby-forum.com/t/difference-between-two-times/112718/2 "2007-08-22T15:47:24Z")

</div>

[http://api.rubyonrails.com/classes/ActionView/Helpers/DateHelper.html](http://api.rubyonrails.com/classes/ActionView/Helpers/DateHelper.html)  
[http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html](http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html)  
[http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html](http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html)

Iain A. wrote:

> >

–  
Sincerely,

William P.

---

<div class="post-metadata">

**Author:** ![Iain\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/6bbea6/32.png) [@Iain\_A](https://www.ruby-forum.com/u/Iain_A)\
**Post date:** [August 22, 2007, 4:10pm UTC](https://www.ruby-forum.com/t/difference-between-two-times/112718/3 "2007-08-22T16:10:26Z")

</div>

On Aug 22, 2007, at 9:46 AM, William P. wrote:

> > Does rails come with functions to do this? Also if the time has  
> > passed  
> > i want it to say 0 days 0 hrs and 0 mins.
> > 
> > Does anyone know a quick way to do this?
> 
> –  
> Sincerely,
> 
> William P.

deadline = Time.mktime( 2007, 8, 22, 12, 0, 0, 0 )  
=\> Wed Aug 22 12:00:00 -0400 2007

secs = [deadline - Time.now, 0].max ;   
“%dd %2d:%02d:%02d” % [ secs.to\_i / 86400, (secs % 86400).to\_i /  
3600, \*((secs % 3600).divmod(60)) ]  
=\> “0d 1:56:35”

And it sounds like you want to wrap this up in a method on that  
object so you can do something like:

e = Expiration.new(Time.mktime( 2007, 8, 22, 12, 0, 0, 0 ))  
puts e.time\_remaining

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![Iain\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/6bbea6/32.png) [@Iain\_A](https://www.ruby-forum.com/u/Iain_A)\
**Post date:** [August 22, 2007, 4:50pm UTC](https://www.ruby-forum.com/t/difference-between-two-times/112718/4 "2007-08-22T16:50:34Z")

</div>

Thats great. Thought they’d be something to use. Thanks
