Time problems

I am storying a column called start time and endtime, both having mysql type "time".

I am using formtastic to create the forms like

<%= f.input :time_start, :label => "Between", :as => :time, :ignore_date => true %>

The time gets stored just fine (though in 24 hour format, which is another headache), but when I extract this time to compare it to Time.now, to figure out, if "now" is between end and start time, the time returned is something like Sat Jan 01 15:00:00 UTC 2000, which is nowhere in 2010.

Why is this happening? Whats the best way to store start and end time to compare later on with "now".

Thanks

I am storying a column called start time and endtime, both having mysql type "time".

[snip]

The time gets stored just fine (though in 24 hour format, which is another headache), but when I extract this time to compare it to Time.now, to figure out, if "now" is between end and start time, the time returned is something like Sat Jan 01 15:00:00 UTC 2000, which is nowhere in 2010.

Why is this happening? Whats the best way to store start and end time to compare later on with "now".

The mysql time type is a pure time of day type (ie no date component). You want a datetime column.

Fred

Thanks Frederick.

If I do that, it stores the date of the day the record was updated or created, I would still need to extract just the time portion and compare it. Is there a way to do that?

My use case is that on May 1st, customer makes reservation beween 7-9pm for May 5th. The record is stored with timestamps of 5/1/2010: 7-9 pm.

When he shows up on May5th, I need to validate Time.now.. whether it's between 7 - 9.

badnaam wrote:

The time gets stored just fine (though in 24 hour format, which is another headache)

Time is effectively meaningless without the date part. You say you want to validate times like 7 pm to 9 pm. Does that mean 7-9 pm standard time or daylight time? Without the date you can't know. The time can be stored in UTC, but in order to display the time in a format your users will understand (local time) you again must know the date.

My use case is that on May 1st, customer makes reservation beween 7-9pm for May 5th. The record is stored with timestamps of 5/1/2010: 7-9 pm.

When he shows up on May5th, I need to validate Time.now.. whether it's between 7 - 9. On May 17, 12:17´┐Żam, Frederick Cheung <frederick.che...@gmail.com>

Even in your example you are specifying the date with the time. So if your customer makes a reservation between 7-9pm on May 5th, store a datetime range where start_time = May 5, 2010 7:00 PM EDT and end_time = May 5, 2010 9:00 PM EDT.