2013-06-13 2 views
0

J'ai un champ de saisie où l'utilisateur entre une date, actuellement j'utilise Chronic et l'utilisateur l'aime.Chronic - comment définir une année par défaut lors de l'analyse d'un mois

Si l'utilisateur entre last jan à l'aide chronique et strftime je reçois January 2013 ce qui est bon, le problème vient quand:

l'entrée utilisateur est un mois à venir comme Janvier, l'analyse que je fais le rendement Janvier 2014 et non Janvier 2013 ce que l'utilisateur veut.

result_date = Chronic.parse(params[:date]).strftime('%B %Y') 

Existe-t-il un moyen de définir par défaut l'année en cours? Donc, lorsque l'utilisateur met Janvier, il est analysé en Janvier 2013?

Merci!

Répondre

0

J'ai été capable de le comprendre!

result_date = Chronic.parse(params[:date], :context => :past).strftime('%B %Y') 

Maintenant, si l'entrée utilisateur est un mois comme Jan le résultat sera Janvier 2013

J'espère que cela aide quelqu'un d'autre!

+1

L'avez-vous testé avec un mois futur au cours de la même année? Par exemple, vous posez cette question en juin 2013. Si vous parsez "July" avec ': context =>: past', vous devriez obtenir 2012, pas 2013. – jdl

+0

oui, dans mon cas ça marche bien, cette date est pour tirer données de DB, donc aucune donnée future n'est disponible. Lorsque l'utilisateur tape Juillet, il se réfère au mois ou à l'année précédente dans ce cas. –

Questions connexes