You can do (Time.now - Time.mktime(*ParseDate.parsedate((t.created_at).to_s)))
On Wednesday, 29 August 2012 13:20:29 UTC+5:30, Colin Law wrote: > > On 29 August 2012 07:48, keerthi <[email protected] <javascript:>> > wrote: > > @colin here i found in console > > > >>> @bio = Biometric.find(36457) > > => #<Biometric id: 36457, rfid: 0, userid: 3, date_time: "2012-08-29 > > 09:30:00", checkin_checkout: nil, forget: nil, reason: nil, entered_by: > nil, > > created_at: "2012-08-29 09:30:00", updated_at: "2012-08-29 09:30:00", > > RealCheckIn: nil, MACHINENO: nil> > >>> @first = @bio.date_time.to_i > > => 1346232600 > >>> @now = Time.now > > => Wed Aug 29 12:13:46 +0530 2012 > >>> @time_now = @now.to_i > > => 1346222626 > >>> @time_now - @first > > => -9974 > > > > @first = @bio.date_time > > => Wed, 29 Aug 2012 09:30:00 UTC +00:00 > > with out converting to to_i > > > >>> @now = Time.now > > => Wed Aug 29 12:16:48 +0530 2012 > > with out converting to_i > > > > as i found was my date from database is in UTC format and when it comes > to > > Time.now its not UTC > > > > > > how can i solve it > > First a slight correction. The time in the database is not in UTC > /format/ it is just in UTC. UTC is not a time format it is a time > zone. Assuming that the column type is datetime (look in db/schema.db > to check) it should not be a problem. When you subtract the times it > should allow for the different time zones and give you the correct > difference in seconds, provided that the time in the database is > correct for UTC. If that is not working for you please give an > example of it not working. > > If it makes it easier for you to understand what is going on you can > convert Time.now to utc by using Time.now.utc. That will not change > the result when you subtract the utc time in the database of course, > as it is still the same time, just represented in a different time > zone. > > Colin > > > > > Cheers > > > > > > > > > > > > On Tue, Aug 28, 2012 at 9:28 PM, Colin Law > > <[email protected]<javascript:>> > wrote: > >> > >> On 28 August 2012 16:40, sameena Khan > >> <[email protected]<javascript:>> > > >> wrote: > >> > @colin if i have two timings9:30 PM and 10:52 i got correct output > here > >> > it > >> > is 10 hours : 38mins > >> > and if i give Time.now as one input and 10:30 AM as another input i > got > >> > 2 > >> > hours : mins > >> > >> The best thing is to put in some diagnostic code and work out what is > >> happening. Remember Time.now is not a time of day it is a date and > >> time. Hopefully your other times are also full date and time objects. > >> > >> Colin > >> > >> > > >> > > >> > i dont think it is timezone issue because if there are two fixed > inputs > >> > and > >> > if i subtract them with my code i get the correct output the only > issue > >> > is > >> > with Time.now as a input i guess. i wanna calculate the working hours > >> > with > >> > mins of an employee. As i explained before if the employee checkin > and > >> > checkout time is there i can able to calculate it and if i wanna show > >> > right > >> > from his checkin until he checkout every min of his working hours and > >> > mins i > >> > have to go for Time.now as another input. > >> > > >> > On Tue, Aug 28, 2012 at 8:05 PM, Colin Law > >> > <[email protected]<javascript:>> > > >> > wrote: > >> >> > >> >> On 28 August 2012 15:18, Khan <[email protected] <javascript:>> > wrote: > >> >> > Hey everyone > >> >> > > >> >> > i am trying to subtract two different times.i am > getting > >> >> > right > >> >> > when i have two fixed times. > >> >> > here is my code > >> >> > > >> >> > > >> >> > def hour_min(last,first) > >> >> > > >> >> > difference = last - first > >> >> > seconds = difference % 60 > >> >> > difference = (difference - seconds) / 60 > >> >> > minutes = difference % 60 > >> >> > difference = (difference - minutes) / 60 > >> >> > hours = difference % 24 > >> >> > > >> >> > return hours,minutes > >> >> > > >> >> > end > >> >> > if last =9:30 PM and first = 10:52 i get after subtraction 10 > hours : > >> >> > 38 > >> >> > mins but the problem is with Time.now > >> >> > if last = Time.now and first = 10:30 am it is give improper > output > >> >> > > >> >> > > >> >> > > >> >> > this is my view > >> >> > <% hour_min = hour_min(Time.now.to_i,cin.first.to_i)%> > >> >> > >> >> You should not need to call to_i, just pass in the times, the > >> >> difference of two times is the difference in seconds. > >> > > >> > > >> > If i don't call with to_i the output will be with decimal(i.e., 3.o > >> > hours ) > >> > to convert them i went with to_i > >> >> > >> >> > >> >> > <%="#{hour_min[0]}Hour : #{hour_min[1]}Min"%> > >> >> > > >> >> > My problem is if i have two fixed timings i am getting correct but > >> >> > when > >> >> > i > >> >> > have to calculate with Time.now i am getting wrong answer can any > one > >> >> > help > >> >> > me out > >> >> > >> >> Have a look at the Rails Guide on debugging which will show you > >> >> techniques that can be used to debug the code. I would start just > by > >> >> running the console (rails c) and try calling your method with > various > >> >> values and see what happens. You can use puts in the method to > print > >> >> intermediate results and see what is happening. > >> >> > >> >> What results are you getting? Is it a number of hours out? If so > >> >> then I guess it is a time zone issue. > >> >> > >> >> Colin > >> >> > >> >> -- > >> >> You received this message because you are subscribed to the Google > >> >> Groups > >> >> "Ruby on Rails: Talk" group. > >> >> To post to this group, send email to > >> >> [email protected]<javascript:>. > > >> >> To unsubscribe from this group, send email to > >> >> [email protected] <javascript:>. > >> >> For more options, visit https://groups.google.com/groups/opt_out. > >> >> > >> >> > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "Ruby on Rails: Talk" group. > >> > To post to this group, send email to > >> > [email protected]<javascript:>. > > >> > To unsubscribe from this group, send email to > >> > [email protected] <javascript:>. > >> > For more options, visit https://groups.google.com/groups/opt_out. > >> > > >> > > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "Ruby on Rails: Talk" group. > >> To post to this group, send email to > >> [email protected]<javascript:>. > > >> To unsubscribe from this group, send email to > >> [email protected] <javascript:>. > >> For more options, visit https://groups.google.com/groups/opt_out. > >> > >> > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Ruby on Rails: Talk" group. > > To post to this group, send email to > > [email protected]<javascript:>. > > > To unsubscribe from this group, send email to > > [email protected] <javascript:>. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/qtIPgVxFaKMJ. For more options, visit https://groups.google.com/groups/opt_out.

