ruby-on-rails - Rails 得到两个日期之间的差异

标签 ruby-on-rails ruby datetime time

<分区>

如何获取以days,hours,mins为单位的时差

我正在努力

datetime_A - datetime_B

datetime_A = 2014 年 1 月 4 日星期六 07:00:13 +0000

datetime_B = 2014 年 1 月 3 日星期五 01:09:46 +0000

它返回类似(35809/28800)的东西,bdw这是什么意思?

我需要像 1day,5h,23min

怎么做到的?

最佳答案

您需要在 Rails 应用程序中添加帮助程序才能实现此目的。 Ruby 没有为此提供任何直接的方法。下面是使用 ruby​​ 2.1.0 的日期操作。

2.1.0 :021 > a_date_time = DateTime.now
 => Fri, 26 Dec 2014 16:39:30 +0530 # First Date
2.1.0 :022 > b_date_time = DateTime.now-20
 => Sat, 06 Dec 2014 16:40:03 +0530 # Second Date
2.1.0 :023 > (a_date_time - b_date_time).to_i
 => 19 # Direct date difference
2.1.0 :024 > Seconds = ((a_date_time - b_date_time)*24*60*60).to_i
 => 1727966 # Seconds between two dates
2.1.0 :025 > sec = Seconds % 60
 => 26 # Second diffence to print
2.1.0 :026 > Minutes = Seconds / 60
 => 28799 # Minutes between two dates
2.1.0 :027 > min = Minutes % 60
 => 59 # Minute diffence to print
2.1.0 :028 > Hours = Minutes / 60
 => 479 # Hours between two dates
2.1.0 :029 > hour = Hours % 24
 => 23 #Hour diffence to print
2.1.0 :030 > Days = Hours / 24
 => 19 # Days between two dates
2.1.0 :032 > Days.to_s + 'Days, ' + hour.to_s + 'Hours, '+ min.to_s + 'Mins, ' + sec.to_s + 'Secs'
 => "19Days, 23Hours, 59Mins, 26Secs" # Desired output

关于ruby-on-rails - Rails 得到两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655960/

相关文章:

java - C 中的 Ruby block /Java 闭包

arrays - 将数组拆分为切片,并进行分组

mysql - 日期时间等于或大于 MySQL 中的今天

wpf - 'AllowSpin' 属性已被 'Xceed_Wpf_Toolkit_Primitives_UpDownBase' 注册

ruby-on-rails - 模板内的 yield 和 provide()

ruby-on-rails - 为什么服务器要处理两次以显示 Rails 中的操作?

ruby - Vagrant 显然没有正确合并 Vagrantfiles,Chef 配置丢失

javascript - 立即进行投票(Rails + MySQL + jQuery)

ruby-on-rails - 为什么 Rails/Zeitwerk 期望 `burgerfrenchfry_coupon.rb` 来定义常量 `BurgerFrenchfryCoupon` ?

python - 按季度生成时间序列,递增四分之一