11175
(-- --)
February 4, 2009, 5:55am
#1
hi,
I've two dates say
input for example.,
date1 = '2009-01-02';
date2 = '2009-01-10';
Need to find date range array between date1 and date2.
output for example.,
Array{
[0]=>'2009-01-02',
[1]=>'2009-01-03',
[2]=>'2009-01-04',
[3]=>'2009-01-05',
[4]=>'2009-01-06',
[5]=>'2009-01-07',
[6]=>'2009-01-08',
[7]=>'2009-01-09',
[8]=>'2009-01-10'
)
Thanks in advance
Shankar.
Shankar Ganesh wrote:
hi,
Hello.
I've two dates say
input for example.,
date1 = '2009-01-02';
date2 = '2009-01-10';
Need to find date range array between date1 and date2.
output for example.,
Array{
[0]=>'2009-01-02',
[1]=>'2009-01-03',
[2]=>'2009-01-04',
[3]=>'2009-01-05',
[4]=>'2009-01-06',
[5]=>'2009-01-07',
[6]=>'2009-01-08',
[7]=>'2009-01-09',
[8]=>'2009-01-10'
)
Thanks in advance
Shankar.
I'm not entirely clear on what you're looking for. If you already have this data in an array, I suggest using select {}. I.e.
data.select {|x| x >= date1 and x<= date2 }
If you're trying to fetch the data, perhaps you're looking for conditions. I.e.
conditions = [ 'date_column > ? AND date_column < ?', date1, date2 ]
Hope that helps.
Cheers,
Darrik
You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).
((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}
Julian
11175
(-- --)
February 4, 2009, 6:23am
#4
Julian Leviston wrote:
You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).
((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}
Julian
Thanks for your HELP.
can you explain with example Julian ?
rab
(Rob Biedenharn)
February 4, 2009, 3:53pm
#6
hi,
I've two dates say
input for example.,
date1 = '2009-01-02';
date2 = '2009-01-10';
Need to find date range array between date1 and date2.
output for example.,
Array{
[0]=>'2009-01-02',
[1]=>'2009-01-03',
[2]=>'2009-01-04',
[3]=>'2009-01-05',
[4]=>'2009-01-06',
[5]=>'2009-01-07',
[6]=>'2009-01-08',
[7]=>'2009-01-09',
[8]=>'2009-01-10'
)
Thanks in advance
Shankar.
From: Julian Leviston <julian@coretech.net.au>
Date: February 4, 2009 1:08:15 AM EST
To: rubyonrails-talk@googlegroups.com
Subject: [Rails] Re: Date Range Between Two Dates - NEED HELP
Reply-To: rubyonrails-talk@googlegroups.com
You can use Date ranges. If you have strings, you'll need to Parsedate
them into dates first. String ranges won't understand date overflow
(ie how many days in a month, months in a year etc.).
((1.year.ago.to_date)..(Date.today)).to_a.map{|x| x.to_s(:db)}
Julian
Julian gave you almost everything. Are you asking about "Parsedate"?
Try this:
require 'date'
date1 = Date.parse('2009-01-02')
date2 = Date.parse('2009-01-10')
(date1..date2).to_a
puts (date1..date2).to_a
2009-01-02
2009-01-03
2009-01-04
2009-01-05
2009-01-06
2009-01-07
2009-01-08
2009-01-09
2009-01-10
=> nil
Or to make it even more clear, try 2009-02-25 to 2009-03-05
puts (Date.parse('2009-02-25')..Date.parse('2009-03-05')).to_a
2009-02-25
2009-02-26
2009-02-27
2009-02-28
2009-03-01
2009-03-02
2009-03-03
2009-03-04
2009-03-05
=> nil
-Rob
Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com