Ruby on rails RoR中Date.Dayed和Date.today.prev_day与1.day.ago之间的结果不同
根据前一天使用的命令,我当前得到的结果不同。唯一正确的答案是Ruby on rails RoR中Date.Dayed和Date.today.prev_day与1.day.ago之间的结果不同,ruby-on-rails,ruby,date,Ruby On Rails,Ruby,Date,根据前一天使用的命令,我当前得到的结果不同。唯一正确的答案是Date.today.prev_day 我可以理解为什么1.day.ago和Date.day可能会因时区不同而有所不同,但我希望两次Date调用的结果会正常化 irb(main):026:0> Date.today.prev_day => Thu, 02 Mar 2017 irb(main):027:0> Date.yesterday => Fri, 03 Mar 2017 irb(main):028:0>
Date.today.prev_day
我可以理解为什么1.day.ago
和Date.day
可能会因时区不同而有所不同,但我希望两次Date
调用的结果会正常化
irb(main):026:0> Date.today.prev_day
=> Thu, 02 Mar 2017
irb(main):027:0> Date.yesterday
=> Fri, 03 Mar 2017
irb(main):028:0> 1.day.ago
=> Fri, 03 Mar 2017 02:45:05 UTC +00:00
为什么使用这三个命令会得到不同的结果?它的工作原理与我预期的一样:
2.2.3 :007 > Rails.version
=> "4.2.6"
2.2.3 :002 > Date.today
=> Sun, 05 Mar 2017
2.2.3 :003 > Date.today.prev_day
=> Sat, 04 Mar 2017
2.2.3 :004 > Date.yesterday
=> Sun, 05 Mar 2017
2.2.3 :005 > 1.day.ago
=> Sun, 05 Mar 2017 00:10:13 UTC +00:00
首先,我要检查Date.today
的结果,即是today
方法或prev_day
方法中的问题。我还要检查该方法是否以某种方式被重写。您可以执行以下操作:
Date.today.method(:prev_day)。源位置
它为我返回
nil
。问题是什么?作为rails
扩展prev\u day
通常在irb
中不可用。你是怎么装的。对于最后一个1.day.ago
更好地理解为“86400秒前”。@MarcRohloff我只是在做一个rails控制台
@AlexanderLuna我只是想知道为什么每个人的结果都不一样。对不起,我没说清楚。