Hey all,

Chronic will parse a date range in console:

Chronic.parse(1/1/2011 - 1/1/2012, :guess => false)
=> 2012-01-01 12:00:00 -0500..2012-01-01 12:00:01 -0500

However, when I use logger to check if it's parsing in application, it
is not:

logger.info "The value of history date is #{history_date}" =>
The value of history date is 1/1/2011 - 1/1/2012
logger.info "The value of date range is
#{ Chronic.parse(history_date, :guess => false)}" => The value of date
range is

See how it returns nil for second logger. I have no clue why it works
fine in console but not in application.

thanks for response

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Search Discussions

  • John Merlino at Jan 1, 2012 at 6:28 pm
    This is strange what happened here. Chronic parse was not able to
    parse a string when it contained a range like this:

    "1/1/2011 - 1/1/2012"

    So in order to address this, i had to check for the "-" in the string:

    if history_date.include? "-"
    date_range =
    Chronic.parse(Date.parse(history_date), :guess => false)

    else
    date_range =
    Chronic.parse(history_date, :guess => false)

    end


    Im open to better solutions.

    thanks for response
    On Jan 1, 12:54 pm, John Merlino wrote:
    Hey all,

    Chronic will parse a date range in console:

    Chronic.parse(1/1/2011 - 1/1/2012, :guess => false)
    => 2012-01-01 12:00:00 -0500..2012-01-01 12:00:01 -0500

    However, when I use logger to check if it's parsing in application, it
    is not:

    logger.info "The value of history date is #{history_date}" =>
    The value of history date is 1/1/2011 - 1/1/2012
    logger.info "The value of date range is
    #{ Chronic.parse(history_date, :guess => false)}" => The value of date
    range is

    See how it returns nil for second logger. I have no clue why it works
    fine in console but not in application.

    thanks for response
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
  • Hassan Schroeder at Jan 1, 2012 at 6:29 pm

    On Sun, Jan 1, 2012 at 9:54 AM, John Merlino wrote:

    Chronic will parse a date range in console:
    However, when I use logger to check if it's parsing in application, it
    is not:
    Loading development environment (Rails 3.1.2)
    ruby-1.9.2-p290 :001 > result = Chronic.parse(1/1/2011 - 1/1/2012,
    :guess => false)
    => 2012-01-01 12:00:00 -0800..2012-01-01 12:00:01 -0800
    ruby-1.9.2-p290 :002 > result = Chronic.parse('1/1/2011 - 1/1/2012',
    :guess => false)
    => nil
    ruby-1.9.2-p290 :003 > result = Chronic.parse(eval('1/1/2011 -
    1/1/2012'), :guess => false)
    => 2012-01-01 12:00:00 -0800..2012-01-01 12:00:01 -0800
    ruby-1.9.2-p290 :004 >

    HTH!
    --
    Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
    http://about.me/hassanschroeder
    twitter: @hassan

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
  • John Merlino at Jan 1, 2012 at 6:49 pm
    It seems to parse the date wrong:

    Chronic.parse(eval("1/1/2011 - 1/1/2012"), :guess => false)
    => 2012-01-01 12:00:00 -0500..2012-01-01 12:00:01 -0500

    I specify two years, 2011 and 2012. And it returns a range of 2012.
    On Jan 1, 1:28 pm, Hassan Schroeder wrote:
    On Sun, Jan 1, 2012 at 9:54 AM, John Merlino wrote:
    Chronic will parse a date range in console:
    However, when I use logger to check if it's parsing in application, it
    is not:
    Loading development environment (Rails 3.1.2)
    ruby-1.9.2-p290 :001 > result = Chronic.parse(1/1/2011 - 1/1/2012,
    :guess => false)
    => 2012-01-01 12:00:00 -0800..2012-01-01 12:00:01 -0800
    ruby-1.9.2-p290 :002 > result = Chronic.parse('1/1/2011 - 1/1/2012',
    :guess => false)
    => nil
    ruby-1.9.2-p290 :003 > result = Chronic.parse(eval('1/1/2011 -
    1/1/2012'), :guess => false)
    => 2012-01-01 12:00:00 -0800..2012-01-01 12:00:01 -0800
    ruby-1.9.2-p290 :004 >

    HTH!
    --
    Hassan Schroeder ------------------------ hassan.schroe...@gmail.comhttp://about.me/hassanschroeder
    twitter: @hassan
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
  • Hassan Schroeder at Jan 1, 2012 at 7:28 pm

    On Sun, Jan 1, 2012 at 10:49 AM, John Merlino wrote:
    It seems to parse the date wrong:

    Chronic.parse(eval("1/1/2011 - 1/1/2012"), :guess => false)
    => 2012-01-01 12:00:00 -0500..2012-01-01 12:00:01 -0500

    I specify two years, 2011 and 2012. And it returns a range of 2012.
    Actually it returns a span of 1 second :-)

    I was assuming your original example worked, but it doesn't. And I
    haven't worked with Chronic much, so I'm not sure if that argument is
    even something it's expected to handle. For example this works fine:

    ruby-1.9.2-p290 :007 > result = Chronic.parse('last year', :guess => false)
    => 2011-01-01 00:00:00 -0800..2012-01-01 00:00:00 -0800
    ruby-1.9.2-p290 :008 > result.class
    => Chronic::Span
    ruby-1.9.2-p290 :009 > result.width
    => 31536000

    while this obviously doesn't:

    ruby-1.9.2-p290 :010 > result = Chronic.parse(1/1/2011 - 1/1/2012,
    :guess => false)
    => 2012-01-01 12:00:00 -0800..2012-01-01 12:00:01 -0800
    ruby-1.9.2-p290 :011 > result.class
    => Chronic::Span
    ruby-1.9.2-p290 :012 > result.width
    => 1
    ruby-1.9.2-p290 :013 >

    Time to jump into the gem source, I think :-)

    --
    Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
    http://about.me/hassanschroeder
    twitter: @hassan

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedJan 1, '12 at 5:54p
activeJan 1, '12 at 7:28p
posts5
users2
websiterubyonrails.org
irc#RubyOnRails

2 users in discussion

John Merlino: 3 posts Hassan Schroeder: 2 posts

People

Translate

site design / logo © 2022 Grokbase