Datetime 人力车误报了日期时间
我使用Rickshaw javascript库来显示和表示一些图形值,遵循中的模型。要绘制的数据通过Ajax调用提供,例如: [{“颜色”:“#65A1CC”,“数据”:[{“x”:1383906402000,“y” :22.31},{“x”:1383906428000,“y”:22.38},{“x”:1383906452000,“y”:22.31},{“x”:1383906477000,“y”:22.38},{“x”:1383906502000,“y”:22.38},{“x”:1383906527000,“y”:22.38},{” x:1383906552000,y:22.31},{“x:1383906577000,y:22.31}],“名称”:“传感器1},{“颜色”:“CC9065”,“数据”:[{“x:1383906402000,y:22.38},{“x:1383906427000,y:22 .38},{“x”:1383906452000,“y”:22.38},{“x”:1383906477000,“y”:22.38},{“x”:1383906502000,“y”:22.38},{“x”:1383906527000,“y”:22.38},{“x”:1383906552000,“y”:22.38},{“x”: 1383906577000,“y”:22.38}],“名称”:“传感器2”}] 此处给出的长值是2013年11月8日星期五13:26:42和2013年11月8日星期五13:29:37之间的数据时间 但是,当将鼠标悬停在结果图上时,各种值的日期显示为“03年4月3日星期六”,如下图所示。我不明白为什么:如果我在javascript中迭代数据,javascript日期对象将显示11月时间,而不是4月 代码是:Datetime 人力车误报了日期时间,datetime,d3.js,rickshaw,Datetime,D3.js,Rickshaw,我使用Rickshaw javascript库来显示和表示一些图形值,遵循中的模型。要绘制的数据通过Ajax调用提供,例如: [{“颜色”:“#65A1CC”,“数据”:[{“x”:1383906402000,“y” :22.31},{“x”:1383906428000,“y”:22.38},{“x”:1383906452000,“y”:22.31},{“x”:1383906477000,“y”:22.38},{“x”:1383906502000,“y”:22.38},{“x”:13839065
<div id="chart_container">
<div id="chart" style="background-color: white;"></div>
<div id="legend_container">
<div id="smoother" title="Smoothing"></div>
<div id="legend"></div>
</div>
<div id="slider"></div>
包括以下js文件:jquery-ui.min.js、d3.v2.js、rickshaw.js、rickshaw.Compat.ClassList.js、rickshaw.Graph.js、rickshaw.Graph.Renderer.js、rickshaw.Graph.Renderer.Area.js、rickshaw.Graph.Renderer.Line.js、rickshaw.Graph.Renderer.Bar.js、rickshaw.Graph.Renderer.ScatterPlot.js、,Rickshaw.Graph.RangeSlider.js、Rickshaw.Graph.HoverDetail.js、Rickshaw.Graph.Annotate.js、Rickshaw.Graph.Legend.js、Rickshaw.Graph.Behavior.Series.Toggle.js、Rickshaw.Graph.Behavior.Series.Highlight.js、Rickshaw.Graph.smooler.js、Rickshaw.Graph.Unstacker.js、,Rickshaw.Fixtures.Time.js,Rickshaw.Fixtures.Time.Local.js,Rickshaw.Fixtures.Number.js,Rickshaw.Fixtures.RandomData.js,Rickshaw.Fixtures.Color.js,Rickshaw.Color.palete.js,Rickshaw.Graph.Axis.Y.js
我应该怎么做才能获得十一月的。。。时间而不是四月
谢谢 您需要以秒为单位传递,而不是以毫秒为单位,因此您应该将时间数据除以
1000
。例如,您需要的不是1383906452000
,而是1383906452
如果无法从服务器端以秒为单位返回时间值,在客户端,您可以在调用showDashboard(data)
之前使用以下命令:
$.ajax({
type : "POST",
dataType: "json",
url : "/myApp/someURL",
data: { pack:selectedpack}
}
).done(function(data) {
showDashboard(data);
});
function showDashboard(data) {
$("#charts").show();
$("#chart").empty();
$("#legend").empty();
var graph = new Rickshaw.Graph({
element: document.getElementById("chart"),
width: 1000 - 130,
height: 400,
renderer: 'line',
series: data
});
graph.render();
var slider = new Rickshaw.Graph.RangeSlider({
graph: graph,
element: $('#slider')
});
var hoverDetail = new Rickshaw.Graph.HoverDetail({
graph: graph
});
var legend = new Rickshaw.Graph.Legend({
graph: graph,
element: document.getElementById('legend')
});
var shelving = new Rickshaw.Graph.Behavior.Series.Toggle({
graph: graph,
legend: legend
});
var axes = new Rickshaw.Graph.Axis.Time({
graph: graph
});
axes.render();
}
$(data).each(function (e, i) {
$(i.data).each(function (f, j) {
j.x = j.x / 1000;
});
});