2016-06-26 45 views
2

我現在正在努力解決時間問題。Nvd3圖表不同時區

我使用NVD3庫創建我的圖表,我計算所有圖表數據在服務器端

問題是圖表上的時間範圍是根據我的電腦時間(GMT + 3)和而不是我的機器(UTC)。我如何獲取它是UTC而不是GMT + 3?

我該怎麼辦?

我加入我的代碼,如果它可以幫助

nv.addGraph(function() { 
var chart = nv.models.lineWithFocusChart().x(function(d) {return d[0];}).y(function(d) { return d[1]; }); 
chart.yAxis 
.tickFormat(d3.format(',.2f')); 

chart.y2Axis 
.tickFormat(d3.format(',.2f')); 

chart.xAxis 
.tickFormat(function(d) { return d3.time.format('%H:%M:%Z')(new Date(d)) }); 

chart.x2Axis 
.tickFormat(function(d) { return d3.time.format('%H:%M:%Z')(new Date(d)) }); 

d3.select('#chart svg') 
.datum(data) 
.transition().duration(500) 
.call(chart); 

return chart; 
+0

服務器是以CMT + 3還是以UTC生成圖形數據? –

+0

服務器生成它在UTC和客戶端在UTC + 02:00 –

+0

但問題是項目應同時在不同時區工作 –

回答

1

找到了解決辦法!

var now =new Date(); 
chart.xAxis.tickFormat(function(d) { if (d!= undefined) 
    { 
    return d3.time.format('%H:%M')(new Date(d+ now.getTimezoneOffset() *    60000 +Number(timeZoneOffset))) } 
});