2015-08-21 41 views
2

我有一個顯示設備功率輸出隨時間變化的圖形,我想格式化圖例,以便顯示當前時間的當前時間戳用戶是(例如,在美國,它將顯示MM/DD/YY h:m:s am/pm,在歐盟將顯示DD/MM/YYYY HH:MM:SS等)。如何根據用戶區域在Dygraphs圖例中設置日期和時間格式

目前,它被設置爲默認值,如下所示:

enter image description here

我傳遞一個JS Date()對象爲x軸和我發現,你可以modify the x-axis labels,但我不能將鼠標懸停在圖上時,查找有關更改圖例格式的任何信息。

+0

我不知道Dygraphs庫。如果你有能力傳遞一個字符串,你可以使用區域設置格式的日期,但不幸的是每個瀏覽器都不支持'Date.prototype.toLocaleDateString',所以你必須使用一個polyfill。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat#Polyfill – Palpatim

+0

我看着Date.toLocaleString(),它是我想要使用的東西,特別是因爲我已經有了Dygraphs中的Date()對象。這個問題告訴Dygraphs使用toLocaleString(),並且我無法在他們的文檔中找到如何執行此操作的任何地方。我發現[這部分](http://dygraphs.com/options.html#xValueFormatter),但沒有使用示例,它沒有那麼有用。 –

回答

6

您已經發現了axisLabelFormatter選項,該選項允許您控制x軸上標籤的格式。

要控制在圖例標籤的格式,你需要使用valueFormatter

g = new Dygraph(div, data, 
    axes: { 
     x: { 
      axisLabelFormatter: function (d, gran) { 
       return d.toLocaleDateString(); 
      }, 
      valueFormatter: function (ms) { 
       return new Date(ms).toLocaleDateString(); 
      } 
     } 
    } 
}); 

一個完全的工作示例,請參見this fiddle。奇怪的是,一個格式化函數需要一個Date,而另一個需要millis自epoch以來?是。不幸的是,這是我們堅持不一致的。

+0

正是我在找的東西。謝謝! –

相關問題