繁体   English   中英

如何在两个日期时间字段的rails中获得几分钟的时差?

[英]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模型TimeWithZonecreated_atupdated_at

created = article.created_at
updated = article.updated_at

minutes = (updated - created) / 1.minutes

由于created_atupdated_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.

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