2020-01-26 21:36:50 +01:00
|
|
|
defmodule Mobilizon.Web.EmailView do
|
|
|
|
use Mobilizon.Web, :view
|
2019-09-30 18:18:04 +02:00
|
|
|
|
2021-03-23 15:18:03 +01:00
|
|
|
alias Cldr.DateTime.Relative
|
2020-01-26 21:36:50 +01:00
|
|
|
import Mobilizon.Web.Gettext
|
2019-10-01 13:08:09 +02:00
|
|
|
|
2020-02-18 08:57:00 +01:00
|
|
|
def datetime_to_string(%DateTime{} = datetime, locale \\ "en", format \\ :medium) do
|
2019-09-30 18:18:04 +02:00
|
|
|
with {:ok, string} <-
|
2020-02-18 08:57:00 +01:00
|
|
|
Mobilizon.Cldr.DateTime.to_string(datetime, format: format, locale: locale) do
|
|
|
|
string
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def datetime_to_time_string(%DateTime{} = datetime, locale \\ "en", format \\ :hm) do
|
|
|
|
with {:ok, string} <-
|
|
|
|
Mobilizon.Cldr.DateTime.to_string(datetime, format: format, locale: locale) do
|
2019-09-30 18:18:04 +02:00
|
|
|
string
|
|
|
|
end
|
|
|
|
end
|
2020-11-16 18:28:52 +01:00
|
|
|
|
|
|
|
@spec datetime_tz_convert(DateTime.t(), String.t()) :: DateTime.t()
|
|
|
|
def datetime_tz_convert(%DateTime{} = datetime, timezone) do
|
|
|
|
case DateTime.shift_zone(datetime, timezone) do
|
|
|
|
{:ok, datetime_with_user_tz} ->
|
|
|
|
datetime_with_user_tz
|
|
|
|
|
|
|
|
_ ->
|
|
|
|
datetime
|
|
|
|
end
|
|
|
|
end
|
2021-03-23 15:18:03 +01:00
|
|
|
|
|
|
|
@spec datetime_relative(DateTime.t(), String.t()) :: String.t()
|
|
|
|
def datetime_relative(%DateTime{} = datetime, locale \\ "en") do
|
|
|
|
Relative.to_string!(datetime, Mobilizon.Cldr,
|
|
|
|
relative_to: DateTime.utc_now(),
|
|
|
|
locale: locale
|
|
|
|
)
|
|
|
|
end
|
2018-10-11 17:37:39 +02:00
|
|
|
end
|