Я хочу найти разницу во времени в минутах между «utc now» и переменной типа Ecto.DateTime
. Какой самый простой способ сделать это? Должен ли я конвертировать оба из них в unix-время и вычитать вместо того, чтобы выполнять сопоставление образцов и сравнивать год, месяц, день и час сначала и только после этого фактически вычитать минуты? Я не ищу никаких зависимостей сторонних разработчиков.Как сравнить минуты в 2 числах в Phoenix/Ecto?
0
A
ответ
1
JIC: Ecto.DateTime
is a struct и имеет Ecto.DateTime.from_erl/1
помощника Он также отвечает за создание «в настоящее время UTC» с Ecto.DateTime.utc/1
(а также from_unix!
и некоторыми другими.).
Elixir DateTime
в свою очередь to_unix/2
, следовательно, один может:
dt1, dt2 = [ecto_time, Ecto.DateTime.utc]
|> Enum.map(&Ecto.DateTime.to_erl/1)
|> Enum.map(&NaiveDateTime.from_erl!/1)
|> Enum.map(&DateTime.from_naive!(&1, "Etc/UTC"))
|> Enum.map(&DateTime.to_unix(&1))
mins = (dt1 - dt2)/60
1
Вы можете конвертировать Ecto.DateTime
в DateTime
с UTC Timezone, а затем сравнить их to_unix
:
iex(1)> now = DateTime.utc_now |> DateTime.to_unix
1486544161
iex(2)> now2 = Ecto.DateTime.utc |> Ecto.DateTime.to_erl |> NaiveDateTime.from_erl! |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_unix
1486544206
iex(3)> (now2 - now)/60
0.75
сопоставления с образцом не будет хорошая идея, так как вам придется обрабатывать каждый случай года/месяца/дня/часа/минуты/секунды переполнения после добавления/вычитания.
0
Elixir теперь имеет метод DateTime.diff/3
.
DateTime.diff(dt1, dt2, :minute)
(В вашем случае DTX является DateTime.utc_now
)
Смежные вопросы
- 1. Как сравнить часы и минуты?
- 2. 2 минуты времени в HTML
- 3. Как сравнить 2 цвета?
- 4. Как сравнить 2 DateTime
- 5. Как сравнить 2 массива?
- 6. Как сравнить 2 числа?
- 7. стоп-скрипт в указанное время (2 минуты)
- 8. Как ограничить в 2 минуты времени выполнения программы в C
- 9. Сравнить 2 Столбцы значений в 2 ExcelSheet
- 10. сравнить 2 ArrayList в vb.net
- 11. Вычисление разницы в числах
- 12. Чтение в целых числах
- 13. Синтаксис Javascript (вопрос 2 минуты)
- 14. Сравнить 2 номера в Java
- 15. Fullcalendar axisFormat добавить 2 минуты
- 16. Как обновить страницу html каждые 2 минуты?
- 17. Сравнить 2 записи в списке
- 18. как вызвать функцию каждые 2 минуты
- 19. grep последние 2 минуты журнала?
- 20. Как сравнить 2 пароля в java?
- 21. Как сравнить 2 строки в Паскале?
- 22. Как сравнить 2 кнопки фона в Android?
- 23. Как сравнить 2 строки в оболочке?
- 24. Как сравнить 2 экземпляра DateTime в C#?
- 25. Как сравнить 2 символа в C
- 26. Как сравнить 2 Интс в JTextField
- 27. Как сравнить 2 подобных типа в C#
- 28. Как сравнить 2 строки в одной таблице
- 29. Как сравнить 2 arraylists в Hashmap?
- 30. Как сравнить эти 2 переменные в PHP?
ли вы имеете в виду 'сейчас()' из SQL? –
Под «utc now» вы подразумеваете новый 'DateTime.utc_now/0'? – Dogbert