Ser*_*pia 1 datetime elixir ecto
我有一个 Ecto.DateTime 我试图从中提取信息。
这工作正常:
{{y, m, d}, _} = Ecto.DateTime.to_erl(date)
"#{m}/#{d}/#{y}"
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试获取小时/分钟/秒值:
{{y, m, d}, {h,m,s}} = Ecto.DateTime.to_erl(date)
"#{m}/#{d}/#{y}"
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
右侧值不匹配:{{2017, 5, 5}, {12, 0, 0}}
您在模式中重复使用变量名称m,这意味着这仅在月份和分钟值相同时才有效。您需要使用不同的名称,例如
{{y, m, d}, {h, min, s}} = Ecto.DateTime.to_erl(date)
Run Code Online (Sandbox Code Playgroud)
或者
{{y, mon, d}, {h, m, s}} = Ecto.DateTime.to_erl(date)
Run Code Online (Sandbox Code Playgroud)
iex(1)> {a, a} = {1, 2}
** (MatchError) no match of right hand side value: {1, 2}
iex(1)> {a, a} = {1, 1}
{1, 1}
Run Code Online (Sandbox Code Playgroud)