improve from_now/2
This commit is contained in:
parent
b98593a4c7
commit
17753ee671
2 changed files with 15 additions and 11 deletions
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<.table id="notes" rows={@notes} row_click={&JS.navigate(~p"/admin/notes/#{&1}")}>
|
<.table id="notes" rows={@notes} row_click={&JS.navigate(~p"/admin/notes/#{&1}")}>
|
||||||
<:col :let={note} label="Name"><%= note.name %></:col>
|
<:col :let={note} label="Name"><%= note.name %></:col>
|
||||||
<:col :let={note} label="Published at"><%= from_now_naive(note.published_at) %></:col>
|
<:col :let={note} label="Published at"><%= from_now(note.published_at) %></:col>
|
||||||
<:col :let={note} label="Kind"><%= note.kind %></:col>
|
<:col :let={note} label="Kind"><%= note.kind %></:col>
|
||||||
<:action :let={note}>
|
<:action :let={note}>
|
||||||
<div class="sr-only">
|
<div class="sr-only">
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
defmodule ChiyaWeb.Format do
|
defmodule ChiyaWeb.Format do
|
||||||
def from_now(later) do
|
def from_now(%DateTime{} = later) do
|
||||||
now = DateTime.utc_now()
|
now = DateTime.utc_now()
|
||||||
diff = DateTime.diff(now, later)
|
diff = DateTime.diff(now, later)
|
||||||
do_from_now(diff)
|
do_from_now(diff)
|
||||||
end
|
end
|
||||||
|
|
||||||
def from_now_naive(later) do
|
def from_now(%NaiveDateTime{} = later) do
|
||||||
now = NaiveDateTime.utc_now()
|
now = NaiveDateTime.utc_now()
|
||||||
diff = NaiveDateTime.diff(now, later)
|
diff = NaiveDateTime.diff(now, later)
|
||||||
do_from_now(diff)
|
do_from_now(diff)
|
||||||
|
@ -13,15 +13,19 @@ defmodule ChiyaWeb.Format do
|
||||||
|
|
||||||
def do_from_now(diff) do
|
def do_from_now(diff) do
|
||||||
cond do
|
cond do
|
||||||
diff <= -24 * 3600 -> "in #{div(-diff, 24 * 3600)}d"
|
diff <= -24 * 3600 -> "in #{div(-diff, 24 * 3600)} days"
|
||||||
diff <= -3600 -> "in #{div(-diff, 3600)}h"
|
diff <= -3600 -> "in #{div(-diff, 3600)} hours"
|
||||||
diff <= -60 -> "in #{div(-diff, 60)}m"
|
diff <= -60 -> "in #{div(-diff, 60)} minutes"
|
||||||
diff <= -5 -> "in #{-diff}s"
|
diff <= -5 -> "in #{-diff} seconds"
|
||||||
diff <= 5 -> "now"
|
diff <= 5 -> "now"
|
||||||
diff <= 60 -> "#{diff}s ago"
|
diff <= 60 -> "#{diff} seconds ago"
|
||||||
diff <= 3600 -> "#{div(diff, 60)}m ago"
|
diff <= 3600 -> "#{div(diff, 60)} minutes ago"
|
||||||
diff <= 24 * 3600 -> "#{div(diff, 3600)}h ago"
|
diff <= 24 * 3600 -> "#{div(diff, 3600)} hours ago"
|
||||||
true -> "#{div(diff, 24 * 3600)}d ago"
|
true -> "#{div(diff, 24 * 3600)} days ago"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pretty_date(%NaiveDateTime{} = date) do
|
||||||
|
Calendar.strftime(date, "%d.%m.%Y")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue