Rails 4 比较没有毫秒的日期时间

ste*_*cdn 6 datetime ruby-on-rails

我试图在提供 JSON 的 Rails 4 API 中准确比较日期时间。当像这样以 rfc3339 格式向 API 发送日期时

"2015-05-06T21:16:43.611-0400"
Run Code Online (Sandbox Code Playgroud)

比较无法正常工作,因为 Rails 4 将日期时间与微秒精度进行比较,而日期以毫秒精度发送

有没有办法在做类似的事情时将比较“限制”到毫秒

object.created_at > '2015-05-06T21:16:43.611-0400'   
Run Code Online (Sandbox Code Playgroud)

Mar*_*rio 7

您可以通过这样做来去除毫秒。object.created_at.change(sec: object.created_at.sec)这将返回一个新的日期时间对象,其中秒数下的所有内容都归零,它不会更改数据库中的日期时间。

我希望有一个更好的方法来做到这一点,但DateTime#changeRails 4 不支持usec,尽管互联网上到处都是说要使用它的人。

你可以写一个助手来让这个更整洁,

def strip_milliseconds(datetime)
    datetime.change sec: datetime.created_at.sec
end
Run Code Online (Sandbox Code Playgroud)