【问题标题】:Ruby difference between two dates两个日期之间的红宝石差异
【发布时间】:2017-08-17 17:12:55
【问题描述】:

我需要检查两个日期之间的差异并检查是否有 24 小时或更长时间。我在调用日期对象的to_time 方法时遇到了麻烦。如果当前日期为 00:00:00,则此 to_time 方法将分钟和秒数转换。

例子:

date = Date.rfc3339('2017-08-16T17:55:49.000-03:00')
=> #<Date: 2017-08-16 ((2457982j,0s,0n),+0s,2299161j)> 
date.to_time
2017-08-16 00:00:00 -0300 
(( Date.today.to_time - date.to_time)/3600).round
=> 24

【问题讨论】:

    标签: ruby-on-rails date time


    【解决方案1】:

    Date 不包括Time。请改用DateTime

    require 'date'
    
    dt = DateTime.rfc3339('2017-08-16T17:55:49.000-03:00')    
    puts (Time.now - dt.to_time)/(60*60) > 24
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      datetime_1 = DateTime.parse("2017-08-17T13:36:03-04:00")
      datetime_2 = DateTime.parse("2017-08-16T13:33:03-04:00")
      greatest_datetime = [datetime_1, datetime_2].max
      smallest_datetime = [datetime_1, datetime_2].min
      (greatest_datetime - 1.day) > smallest_datetime
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-16
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 2017-04-19
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        相关资源
        最近更新 更多