2012-03-29 59 views
0

我正在使用紅寶石寶石的谷歌分析API。它接受參數並生成結果,我從七個度量中獲取數據。它接受開始時間和結束時間,並根據我們傳遞的時間生成數據。迭代24小時在紅寶石30天的時間

這裏是一個

Visits.results(pro1, {:start_date => Time.now - 86400, :end_date => Time.now}) 

這使我對過去24小時的訪問總數的樣本。

我的要求並不複雜。還有其他幾個指標。我需要從過去30天的Google Analytics數據中獲取數據。假設如果我今天轉儲它應該得到我以前30天的數據。像28日27日26日25日....得到了2012年3月28日00:00:00〜2012年3月28日59:59:59,2012年3月27日00:00:00〜2012年3月27日59:59:59的數據......我必須在2-3天之內努力實現這一目標。我是紅寶石的新手。請幫助我。爲了使我需要從谷歌分析數據中獲取數據,在過去的30天內迭代24小時。

+0

你在尋找類似 '(Time.now - 1.days), (Time.now - 1.months), (Time.now - 1.years)' 注:其工作與軌道 – 2012-03-29 10:36:46

回答

1

如果你想結果各天

results = [] 
30.downto(1) do |n| 
    results << Visits.results(pro1, {:start_date => Date.today - n.days, :end_date => Date.today - (n-1).days}) 
end 

,或者如果你想一次全部

Visits.results(pro1, {:start_date => Date.today - 30.days, :end_date => Date.today}) 

如果你想包括今天還有那麼設定的結束日期,以Date.tomorrow

+0

從可讀性的角度來看,我更喜歡使用'n.days.ago'。例如。 'Visits.results(pro1,{:start_date => n.days.ago,:end_date =>(n-1).days.ago})' – 2012-03-29 11:10:32

+0

n.days.ago包含時間 - 所以'1.day。以前是昨天在當前時間。而'Date.today-1.day'只給出日期(相當於昨天午夜)。如果您使用的是時間部分,這是一個重要的區別 – Shaun 2012-03-29 11:35:15

+0

好點Shaun,在這種情況下'Date.today - 1.day'確實有意義。雖然(這可能只是我個人的偏好),你也可以做'1.day.ago.at_midnight'或'1.day.ago.to_date' – 2012-03-29 11:49:48

0

嘗試

Visits.results(pro1, {:start_date => Date.today.last_month , :end_date => Date.today})