我想计算两个date_time fields.like created_at和updated_at字段之间的时间差(以分钟为单位)。我想要这样的结果updated_at - created_at = some minutes.
这些时间都存在于印度的时区。在Rails中如何做到这一点?
created = article.created_at
updated = article.updated_at
minutes = updated - created
我想计算两个date_time fields.like created_at和updated_at字段之间的时间差(以分钟为单位)。我想要这样的结果updated_at - created_at = some minutes.
这些时间都存在于印度的时区。在Rails中如何做到这一点?
created = article.created_at
updated = article.updated_at
minutes = updated - created
5条答案
按热度按时间cyej8jka1#
此解决方案适用于使用
created_at
和updated_at
的TimeWithZone
类的ActiveRecord模型。kupeojn62#
由于
created_at
和updated_at
的类型为DateTime
,因此应该可以工作。说明:
减去两个DateTimes返回 the elapsed time in days。在下面的例子中,
e-d
将返回(28807336643183/28800000000000)
。因此,要将其转换为 * 分钟 *,我们需要乘以24*60
(因为一天有24小时,每个小时有60分钟)示例(已测试):
q9rjltbz3#
看一下helper
time_ago_in_words
,我们可以说:kpbwa7wx4#
ActiveRecord的列
created_at
和updated_at
的数据类型是ActiveSupport::TimeWithZone
。如果要用DateTime进行操作,则需要先进行转换您可以在Rails控制台中轻松地对此进行测试,但是为了更容易测试,您可以将其转换为秒
pieyvz9o5#
这就是我所使用的,它只是为您处理天或分钟,并为您提供差异
time_ago_in_words
只需传递一个日期时间,日期或时间对象,它将返回人类可读的差异。time_ago_in_words(@post.created_at)