Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime Elixir 1.5日期时间比较_Datetime_Elixir - Fatal编程技术网

Datetime Elixir 1.5日期时间比较

Datetime Elixir 1.5日期时间比较,datetime,elixir,Datetime,Elixir,在我的应用程序中,我需要设置操作超时。多亏了Timex库,这很容易做到 不幸的是,我犯了一个奇怪的错误。我挖了一下,发现了这个: iex(55)> dt = Timex.now() |> Timex.add( Timex.Duration.from_seconds( 10)) #DateTime<2017-12-13 18:32:30.922418Z> iex(56)> DateTime.utc_now()

在我的应用程序中,我需要设置操作超时。多亏了Timex库,这很容易做到

不幸的是,我犯了一个奇怪的错误。我挖了一下,发现了这个:

iex(55)> dt = Timex.now() |> Timex.add( Timex.Duration.from_seconds( 10))
#DateTime<2017-12-13 18:32:30.922418Z>

iex(56)> DateTime.utc_now()                                              
#DateTime<2017-12-13 18:32:22.411246Z>

iex(57)> dt <= DateTime.utc_now()                                        
false
iex(58)> dt <= DateTime.utc_now()
false
iex(59)> dt <= DateTime.utc_now()
false
iex(60)> dt <= DateTime.utc_now()
false
iex(61)> dt <= DateTime.utc_now()
false

iex(62)> dt <= DateTime.utc_now()
false (!)
iex(63)> dt <= DateTime.utc_now()
true (!)
iex(64)> dt <= DateTime.utc_now()
false (!)

iex(65)> dt <= DateTime.utc_now()
false
iex(66)> dt <= DateTime.utc_now()
false

不能将比较运算符与
DateTime
一起使用。对于这些操作符来说,
DateTime
struct只是一个映射,它不会比较您想要比较的
DateTime
s(年、月、日等)的方式。您可以为此使用:

iex(1)> {:ok, dt1, 0} = DateTime.from_iso8601("2017-12-13 18:32:30.922418Z")
{:ok, #DateTime<2017-12-13 18:32:30.922418Z>, 0}
iex(2)> {:ok, dt2, 0} = DateTime.from_iso8601("2017-12-13 18:32:22.411246Z")
{:ok, #DateTime<2017-12-13 18:32:22.411246Z>, 0}
iex(3)> DateTime.compare(dt1, dt2)
:gt
iex(4)> DateTime.compare(dt2, dt1)
:lt
iex(1)>{:ok,dt1,0}=DateTime.from_iso8601(“2017-12-13 18:32:30.922418Z”)
{:好的,#DateTime,0}
iex(2)>{:ok,dt2,0}=DateTime.from_iso8601(“2017-12-13 18:32:22.411246Z”)
{:好的,#DateTime,0}
iex(3)>日期时间比较(dt1、dt2)
:gt
iex(4)>日期时间比较(dt2,dt1)
:lt

您不能将比较运算符与
DateTime
一起使用。对于这些操作符来说,
DateTime
struct只是一个映射,它不会比较您想要比较的
DateTime
s(年、月、日等)的方式。您可以为此使用:

iex(1)> {:ok, dt1, 0} = DateTime.from_iso8601("2017-12-13 18:32:30.922418Z")
{:ok, #DateTime<2017-12-13 18:32:30.922418Z>, 0}
iex(2)> {:ok, dt2, 0} = DateTime.from_iso8601("2017-12-13 18:32:22.411246Z")
{:ok, #DateTime<2017-12-13 18:32:22.411246Z>, 0}
iex(3)> DateTime.compare(dt1, dt2)
:gt
iex(4)> DateTime.compare(dt2, dt1)
:lt
iex(1)>{:ok,dt1,0}=DateTime.from_iso8601(“2017-12-13 18:32:30.922418Z”)
{:好的,#DateTime,0}
iex(2)>{:ok,dt2,0}=DateTime.from_iso8601(“2017-12-13 18:32:22.411246Z”)
{:好的,#DateTime,0}
iex(3)>日期时间比较(dt1、dt2)
:gt
iex(4)>日期时间比较(dt2,dt1)
:lt