繁体   English   中英

最有效的方式以分钟为单位获取时差

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM