【问题标题】:Parsing a date from C# to javascript with D3js使用 D3js 将日期从 C# 解析为 javascript
【发布时间】:2014-04-10 08:53:54
【问题描述】:

我正在尝试将一个 c# 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'

我希望有人可以帮助我正确解析这些日期,因为我似乎无法弄清楚。

【问题讨论】:

  • tmp = new Date(parseInt(d.Time.substr(6))); 的结果是一个 Date 对象,不需要进一步解析。不过,您可能需要格式化,所以 var parseDate = d3.time.format("%Y%m%d") according do the documentation,所以您可能需要重命名该变量。
  • 啊,谢谢。我怎么能错过呢? :$ 随意添加它作为我接受的答案!
  • 天堂禁止!! RTFM 得分? ;-)
  • 哈哈 :) 好点。我想我还是误解了它:)下次必须更仔细地阅读它;)

标签: c# javascript json d3.js


【解决方案1】:

从这个comment已经回答了,

结果

tmp = new Date(parseInt(d.Time.substr(6))); 

是一个Date 对象,它不需要进一步解析。你可能想要格式化,所以

var parseDate = d3.time.format("%Y%m%d")

根据documentation,您可能需要重命名该变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 2017-01-03
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多