2014-02-05 90 views
0

1000AD之前日期的不良顯示如果我通過谷歌圖表API(時間圖)此日期:在谷歌圖

Date(1, 0, 1) 

我獲得2001年的

你知道怎麼去一年1AD

Date(0001,0,1)也不工作。

+0

更多inf o在谷歌錯誤跟蹤:https://code.google.com/p/google-visualization-api-issues/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone% 20Owner%20Summary%20Stars&groupby =&sort =&id = 1468 – RobM

+0

並驗證錯誤。 – RobM

回答

0
new Date("0001-01-01T00:00"); 

將返回

Mon Jan 01 1 01:00:00 GMT+0100 

GMT可能是你的結果不同。

更新:請參閱example at jsbin。對於這種類型的,如日期格式:

dataTable.addRows([ 
    [ 'Washington', new Date("0090-03-29T00:00"), new Date("0097-02-03T00:00") ], 
    [ 'Adams',  new Date("0097-02-03T00:00"), new Date("0101-02-03T00:00") ], 
    [ 'Jefferson', new Date("0101-02-03T00:00"), new Date("0109-02-03T00:00") ]]); 

dataTable.addRows([ 
    [ 'Washington', new Date("0040-03-29T00:00"), new Date("0097-02-03T00:00") ], 
    [ 'Adams',  new Date("0097-02-03T00:00"), new Date("0101-02-03T00:00") ], 
    [ 'Jefferson', new Date("0101-02-03T00:00"), new Date("0109-02-03T00:00") ]]); 

它的工作,直到我嘗試設置比今年40小於後它打破了錯誤:

Error: Problem parsing d="MNaN,0LNaN,40.992" 
... 
Error: Invalid value for <rect> attribute x="NaN" 

更新:正在關注this articel我發現還可以使用以下內容(注意兩個前導零和+符號,減號應該用於多年BC):

new Date('+000001') 

產品:

Mon Jan 01 1 01:00:00 GMT+0100 
+0

測試......... – RobM

+0

錯誤:未捕獲TypeError:對象日期(「0072-01-01T00:00」)沒有方法'getTimezoneOffset' – RobM

+0

我會檢查我的時間軸圖表示例它的工作原理。這是有效的日期,但我從來沒有嘗試過這樣的時間線 –

1

如果您輸入您的日期如下:

new Date(1, 0, 1) 

,他們於1900年開始,但你可以通過遍歷DataTable中予以更正,設置每個日期的全年:

// assumes date is column 0 in your DataTable 'data' 
for (var i = 0; i < data.getNumberOfRows(); i++) { 
    var date = data.getValue(i, 0); 
    date.setFullYear(date.getFullYear() - 1900); 
    data.setValue(i, 0, date); 
} 
+0

嗨,我已經改變litte你的代碼。但得到錯誤時間線JS:錯誤:問題解析d =「MNaN,0LNaN,40.992」dygraph,格式+ PL,默認+ PL,UI + PL,時間線+ pl.I.js:467 – RobM

+0

根據控制檯傳遞給date.setFullYear()的數據似乎是正確的:1,2,3,4等 – RobM

+0

@Pablo對不起,但答案有錯字錯誤(數據,日期),無法實現Google時間軸API(需要2列:開始,結束)。所以在此代碼:for(var i = 0; i RobM