【发布时间】:2018-09-16 17:55:35
【问题描述】:
我是 Elixir 的新手,正在尝试将 Rails API 移植到 Phoenix 作为一个学习项目。
我有一个 Postgres 时间字段,我已将其添加到 Ecto 方案:
field :start_time, Ecto.Time
问题:我想将时间的 12 小时格式版本(例如 16:30)输出为字符串:例如,下午 4:30。我一直很难找到一种简单/标准的方法来做到这一点。
这是我目前最接近的解决方案:
def format_time(time) do
{:ok, {hours,minutes,y, z}} = Ecto.Time.dump(time)
{hour, ampm} = Timex.Time.to_12hour_clock(hours)
"#{hour}:#{minutes}#{ampm}"
end
对于我认为已经有更简洁和标准实现的东西来说,这似乎是一段可笑且长得可笑的代码;此外,它还存在输出下午 2:0 而不是下午 2:00 的问题——用尾随零格式化 0 是我正在处理的又长又复杂的代码——此时我开始感觉事情正在发生偏离轨道。
建议!
【问题讨论】: