Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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 rails——使用chronic将军事时间解析为AM/PM?_Ruby On Rails_Datetime_Time_Chronic - Fatal编程技术网

Ruby on rails rails——使用chronic将军事时间解析为AM/PM?

Ruby on rails rails——使用chronic将军事时间解析为AM/PM?,ruby-on-rails,datetime,time,chronic,Ruby On Rails,Datetime,Time,Chronic,我一直在使用Chronic,自然语言解析器,它非常棒。我现在遇到的问题是,我无法解析军事时间,它会将我返回到某种形式的AM/PM时间,这对于用户来说是正常的 <%= Chronic.parse("next monday") %> 收益率=>2010年7月5日星期一12:00:00-0500 有没有一种方法可以让我将“周一7月5日12:00:00-0500 2010”解析为“周一7月5日上午5:00”,或者更好的方法是“上午5:00” 我知道一个,但我想一定有人以前处理过这个问

我一直在使用Chronic,自然语言解析器,它非常棒。我现在遇到的问题是,我无法解析军事时间,它会将我返回到某种形式的AM/PM时间,这对于用户来说是正常的

 <%= Chronic.parse("next monday") %>

收益率=>2010年7月5日星期一12:00:00-0500

有没有一种方法可以让我将“周一7月5日12:00:00-0500 2010”解析为“周一7月5日上午5:00”,或者更好的方法是“上午5:00”


我知道一个,但我想一定有人以前处理过这个问题。

慢性病不会返回字符串

Mon Jul 05 12:00:00 -0500 2010
相反,Chronic返回的是Time类的一个实例

由于erb需要字符串,因此将自动调用.to_s。那么真正发生的事情是:

<%= Chronic.parse("next monday").to_s %>

听起来您需要不同的输出格式。使用方法


==>上午5:00
或
==>7月5日星期一上午5:00
(我将把它作为一个练习留给读者,让他们找出如何把时间定在7月5日而不是7月5日,或是5:00而不是5:00,或者再问一个问题)

增加:

还请注意,您需要了解时区。慢性解析使用本地时间和本地时区。(服务器本地)这就是-0500的意思。您需要决定如何处理应用程序中的时区

<%= Chronic.parse("next monday").strftime("%I:%M %p") %>
  ==> 05:00 AM

or
<%= Chronic.parse("next monday").strftime("%A %B %I:%M %p") %>
  ==> Monday July 5 05:00 AM