Вычислить различие в днях ActiveSupport:TimeWithZone в большей части стиля “rubyish”?

У меня есть чувство, что кто-то собирается указать на меня на другой вопрос, который отвечает на это, но я искал без удачи по этой простой проблеме.

У меня есть Activerecord со свойством даты и времени. Это возвращается как ActiveSupport:TimeWithZone. Я знаю, что не могу сравнить это с DateTime.now, потому что это не включает зону, таким образом, я должен использовать Time.zone. Имеет смысл.

То, что я задаюсь вопросом, является stylewise, там "более чистый" способ сделать это, чем вычитание и деление результата 86 400?

Вот то, что я делаю:

((Time.zone.now - myActiveRecord.visit_date)/86400).to_i

Работы, но кажутся un-rubyish, и я чувствую, что пропускаю что-то. Я должен бросать, выдерживая сравнение или преобразовывая некоторый другой маршрут, или это - действительно типичный способ сделать это в направляющих? Цените любые подсказки или ссылку на вопрос, который уже покрывает это.

Спасибо

40
задан Nick 16 June 2010 в 00:06
поделиться

1 ответ

Одна вещь, которую вы можете сделать, чтобы сделать это более читабельным:

((Time.zone.now - myActiveRecord.visit_date) / 1.day).to_i

Edit:

На самом деле вы можете избавиться от одного набора скобок с помощью:

(Time.zone.now - myActiveRecord.visit_date).to_i / 1.day
81
ответ дан 27 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: