[英]how to get time difference in minutes in rails for two date time fields?
我想计算两个date_time字段之间的时间差,以分钟为单位。如created_at和updated_at类型的字段。 我想要像这样的结果updated_at - created_at = some minutes.
这些时间出现在印度的时区。 我怎么能在铁轨上做到这一点?
created = article.created_at
updated = article.updated_at
minutes = updated - created
该解决方案适用于使用ActiveRecord模型TimeWithZone
类created_at
和updated_at
。
created = article.created_at
updated = article.updated_at
minutes = (updated - created) / 1.minutes
由于created_at
和updated_at
的类型为DateTime
,因此应该可以使用。
created = article.created_at
updated = article.updated_at
minutes = ((updated - created) * 24 * 60).to_i
说明:
减去两个DateTimes将返回以天为单位的已用时间 。 在下面的示例中, ed
将返回(28807336643183/28800000000000)
。 因此,要将其转换为分钟 ,我们需要将其乘以 24*60
(因为当天有24小时,每小时有60分钟)
实施例(试验):
d = DateTime.now
=> Tue, 13 Jun 2017 10:21:59 +0530
2.3.3 :003 > e = DateTime.now + 1.day
=> Wed, 14 Jun 2017 10:22:21 +0530
g = ((e-d) * 24 * 60).to_i
=> 1440
这就是我使用的,它只是为你处理几天或Min,以及给你差异time_ago_in_words
只是传递一个Datetime,Date或Time对象,它将返回人类可读的差异。 time_ago_in_words(@post.created_at)
看着帮手time_ago_in_words
,我们可以说:
from_time = from_time.to_time if from_time.respond_to?(:to_time)
to_time = to_time.to_time if to_time.respond_to?(:to_time)
#absolute distance:
from_time, to_time = to_time, from_time if from_time > to_time
distance_in_minutes = ((to_time - from_time)/60.0).round
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.