我在用菲尼克斯和埃克托。我需要检查一下“now()”和某个不到3天的日期之间是否有差异。正是我在尝试:

    {diff_days, {_, _, _}} = Ecto.DateTime.to_erl(my_user.signed_up_at) |> :calendar.time_difference(:calendar.universal_time)
    if diff_days <= 3 do
      # good to go
      # ....
    end

不过,这个约会不会超过3天1分钟,对吧?
如果不超过3天或72小时,唯一的检查方法是什么?
在我的数据库中signed_up_attimestamp without timezone类型

最佳答案

使用DateTime.diff/3

three_days_in_seconds = 3 * 24 * 60 * 60
case DateTime.diff(DateTime.utc_now, my_user.signed_up_at, :second) do
  good when good < three_days_in_seconds ->
    # good to go
  _ ->
    # skip
end

请注意,:second是调用DateTime.diff/3时第三个参数的默认值,可能会被忽略。

关于postgresql - 检查数据库的“now()”和时间戳是否与3天相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48218880/

10-12 18:55