Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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
Ruby on rails 日期:明天,两天后_Ruby On Rails_Datetime - Fatal编程技术网

Ruby on rails 日期:明天,两天后

Ruby on rails 日期:明天,两天后,ruby-on-rails,datetime,Ruby On Rails,Datetime,我看到了一些非常奇怪的事情 <h3><%= (Date.today).strftime("%A, %B %d, %Y") %></h3> 结果是2013年10月9日星期三,这是正确的 然而,该结果将于2013年10月11日(星期五)公布 <h3><%= (Date.tomorrow).strftime("%A, %B %d, %Y") %></h3> 它完全跳过了周四(实际上是明天) 有什么想法吗?该方法不是

我看到了一些非常奇怪的事情

<h3><%= (Date.today).strftime("%A, %B %d, %Y")  %></h3>

结果是2013年10月9日星期三,这是正确的

然而,该结果将于2013年10月11日(星期五)公布

<h3><%= (Date.tomorrow).strftime("%A, %B %d, %Y")  %></h3>

它完全跳过了周四(实际上是明天)


有什么想法吗?

该方法不是用Ruby编写的,而是用Rails编写的。也许你的Ruby和Rails是为不同的时区设置的。你从Date.current中得到了什么,它基本上是现在在rails中的?

rails-
Date
提供了
current
方法来补充Ruby-
Date
方法。因此,现在您可以使用:

Date.current     # Rails equivalent of Ruby's - Date.today
Date.tomorrow

对于所有应该遵守Rails时区和Ruby-
日期的日期。今天一直都是这样。

我想知道测试时的确切时间(和时区)可能会有用。是的,但是在没有时区的情况下,明天应该是从今天开始的2天。我可以想到至少一种可能性,在测试中断时。对我来说,这分别给出了星期四和星期五,因此如果我想看到这种现象,我需要确切的时间戳。即使在rails控制台中,日期也是如此。今天是第9天,明天是第11天。不是DST所以不要认为是它。日期。当前我明天得到。我相信这就是原因。让这些同步的最好方法是什么?基本上,date.current应该是美国的中心时间。非常感谢。我不知道什么是最佳实践,但可能您还没有定义时区()。您可能想在这个主题上挖掘其他线程,目前,通过将一天添加到今天来计算明天,而不是调用两个不同的方法。对我来说,解决这个问题的方法是在application.rb时区中取消对config.time_zone='Central time(US&Canada')的注释。您可以在此文件中处理时区。这篇文章也有助于了解更多信息: