2010-06-30 28 views
0

我一直在使用Chronic,自然語言解析器和它的真棒。我現在遇到的問題是,我無法解析它讓我回到某種形式的AM/PM時間的軍事時間,這對用戶來說是正常的。鐵軌 - 解析軍事時間到上午/下午,使用慢性?

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

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

有沒有辦法往回走,所以我可以解析「週一7月5日12:00:00 -0500 2010」到「7月5日星期一凌晨5點」或甚至更好,但只是「凌晨5點」?

Wierd我知道,但我認爲有人必須以前處理過這個。

回答

2

慢性沒有返回字符串

Mon Jul 05 12:00:00 -0500 2010 

相反,慢性正在返回Time類

的實例。由於ERB <%= XXX%>想要一個字符串,.to_s正在被呼叫自動。那麼究竟發生了什麼:

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

聽起來像你想要一個不同的輸出格式。使用方法strftime

<%= 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 

(我會離開它作爲一個練習讀者弄清楚如何使它7月5日,而不是7月5日或5:00 AM而不是上午5時00分。或問其他在SO Q)

補充:

另外請注意,您需要注意的時區。慢性分析使用本地時間和本地時區。 (本地到服務器。)這就是-0500的含義。您需要決定如何處理您應用中的時區。

相關問題