[英]Get time difference in minutes in rails the most effective way
在我的Rails应用程序中,我有一个名为Schedule的表,其中的字段称为到达,我在其中输入时间,并且我猜测由于某种原因,它默认以以下格式存储在UTC中
2000-01-01 07:37:00 UTC
在我的控制器中,当我执行类似Time.now的操作时,现在我将有时间
2015-04-26 23:35:46 -0400
我的问题是需要两次都在同一区域或某物中,以便我可以计算出差异。
我知道我可以在Time.now上添加4个小时并使其成为utc,但仍然如何在几分钟内获得它们之间的区别? 我想到了一个愚蠢的hack,如果我将4小时添加到Time.now,它将变成utc,然后减去两者之间的差异。 但是,存储在db中的时间具有2001年日期,而该日期具有2015年日期,那么它将起作用吗? 我会建议您的答案或方法。 谢谢
这不是问题,Ruby在内部处理时区。
time1 = DateTime.parse('2000-01-01 10:00:00 UTC')
time2 = DateTime.parse('2000-01-01 10:00:00 -0100')
time2 - time1
# => (1/24)
即Ruby已经知道在UTC和-0100中同一时间之间的时差是一小时。 如果您允许,时差运算符已经在做正确的事情:)
但是, DateTime
是Ruby, Time
是C-前者具有更好的API,并且可以很好地与数据库一起工作,但后者则更快。
编辑:这是一个使用Time
的示例,仍然相同:
time1 = Time.new(2000, 1, 1, 10, 0, 0, "+00:00")
time2 = Time.new(2000, 1, 1, 10, 0, 0, "-01:00")
time2 - time1
# => 3600.0
编辑:
2999
年2000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.