Formats relative time strings such as "3 days ago", "tomorrow", or "in 10 seconds".
Supports integer offsets (in seconds), Date, DateTime,
NaiveDateTime, and Time structs.
Summary
Functions
Returns the list of known time units.
Returns a string representing a relative time for a given number, date, time, or datetime.
Same as to_string/2 but raises on error.
Functions
@spec known_units() :: [atom(), ...]
Returns the list of known time units.
@spec to_string(integer() | Date.t() | DateTime.t() | Time.t(), Keyword.t()) :: {:ok, String.t()} | {:error, Exception.t()}
Returns a string representing a relative time for a given number, date, time, or datetime.
Arguments
relativeis an integer (seconds from now), or aDate,DateTime,NaiveDateTime, orTimestruct.optionsis a keyword list of options.
Options
:localeis a locale identifier. The default is:en.:formatis:standard,:narrow, or:short. The default is:standard.:unitis the time unit for formatting. One of:second,:minute,:hour,:day,:week,:month,:year,:mon,:tue,:wed,:thu,:fri,:sat,:sun,:quarter. If omitted, a unit is derived automatically.:relative_tois the baseline date/datetime from which the difference is calculated. Defaults to now.
Returns
{:ok, formatted_string}on success.{:error, exception}on failure.
Examples
iex> Localize.DateTime.Relative.to_string(-1, unit: :day, locale: :en)
{:ok, "yesterday"}
iex> Localize.DateTime.Relative.to_string(1, unit: :day, locale: :en)
{:ok, "tomorrow"}
iex> Localize.DateTime.Relative.to_string(-3, unit: :day, locale: :en)
{:ok, "3 days ago"}
iex> Localize.DateTime.Relative.to_string(2, unit: :hour, locale: :en)
{:ok, "in 2 hours"}
Same as to_string/2 but raises on error.