我正在尝试将ac#DateTime对象(从控制器作为Json返回)解析为适当的javascript日期格式,以输入到D3js。
在我的控制器中,我现在返回一些随机值:
[HttpGet]
public ActionResult DataBlob()
{
var list = new List<object>();
var rnd = new Random();
var start = DateTime.Now.AddDays(-30);
var range = (DateTime.Today - start).Days;
for (int i = 0; i < 10; i++)
{
list.Add(new TrendData
{
Depth = rnd.Next(i, 100),
Id = i,
Speed = rnd.Next(i, 100),
Time = start.AddDays(rnd.Next(range)),
Weight = rnd.Next(i, 100)
});
}
return Json(list, JsonRequestBehavior.AllowGet);
}
在我看来,我有d3组件,可使用d3.json(..)来获取数据:
...
var parseDate = d3.time.format("%Y%m%d").parse;
...
d3.json('@Url.Action("DataBlob", "Trend")', function (error, data) {
color.domain(d3.keys(data[0]).filter(function (key) { return key !== "Time"; }));
data.forEach(function (d) {
console.log("Before: " + new Date(parseInt(d.Time.substr(6))));
tmp = new Date(parseInt(d.Time.substr(6)));
d.Time = parseDate(tmp);
console.log("After: " + d.Time);
});
}
这是我从json调用中获得的数组的快照:
检查控制台时,从console.log语句中看到以下内容:
Before: Thu Mar 13 2014 10:53:17 GMT+0100 (W. Europe Standard Time)
随后出现此错误:
Uncaught TypeError: Object [object Date] has no method 'substring'
我希望有人可以帮助我正确解析这些日期,因为我似乎无法弄清楚。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句