Sim*_*n H 0 elixir ecto phoenix-framework
我正在尝试以timestamp inserted_atjson的形式提供自动字段.
问题是Chrome和Firefox在分析发送内容方面存在分歧.问题似乎是菲尼克斯默认提供的服务"2017-01-12T19:49:000".这由Firefox和IE解析为UTC,而Chrome将此转换为本地时间.添加一个Z("2017-01-12T19:49:000Z"),所有都给当地时间.
结果我将我的代码转换为:
def render("message.json", %{message: message}) do
%{id: message.id,
content: message.content,
date: Ecto.DateTime.to_iso8601(message.inserted_at)<>"Z"}
end
Run Code Online (Sandbox Code Playgroud)
但这感觉非常黑客,必须有一个更好的方法.
问题是Ecto不知道日期时间是否是UTC.幸运的是,Ecto 2.1有一个更好的选择,因为它支持Elixir 1.3中的内置日历类型.
模式中有两种新类型 - naive_datetime存储没有时区的日期时间(使用Elixir的NaiveDateTime结构),并将utc_datetime日期时间存储在UTC时区中(使用Elixir的DateTime结构).后来序列化为iso8601与最终Z.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |