Подтвердить что ты не робот

Как удалить миллисекунды с даты в рельсах?

Мне нужно сравнить дату в рельсах, чтобы получить значения после этой даты, я отправил дату как "2013-03-04T06:26:25Z", но на самом деле запись в db содержит дату следующим образом 2013-03-04 06:26:25.817149, поэтому, когда я проверяю дату, возвращает эту запись, но мне нужны записи после этой даты. как я могу удалить миллисекунды из db? пожалуйста, помогите мне.

4b9b3361

Ответ 1

У меня была аналогичная проблема

Обновите свой объект времени, как это, прежде чем отправлять его в базу данных:

time.change(:usec => 0)

Ответ 2

С ruby ​​1.9 вы можете использовать round

t = Time.now.round
t.usec # => 0

Ответ 3

У меня также была эта проблема, однако, когда я применял изменение как указано в ответе @Intrepidd, это не повлияло на микросекунды моего объекта времени.

Обратите внимание, что (по крайней мере в настоящее время) ключ :usec работает только с Time#change, а не с помощью метода DateTime#change.

Метод DateTime#change игнорирует ключи, которые он не принимает, поэтому вы не сможете сказать, что попытка смены микросекунд не срабатывала, если вы не осмотрели объект (например, с помощью DateTime#rfc3339(9)).

Итак, прежде чем вы попытаетесь это изменение, убедитесь, что вы работаете с объектом Time, а не с объектом DateTime.