date - d3.min.js 给出 Uncaught TypeError : n. apply 不是函数

标签 date d3.js formatting

我试图根据以下内容将日期时间拆分为两个变量 cx(应该是一年中的日期)和 cy(应该是小时+分钟/60):

<!-- date format of d.date: 24-8-2016 9:47:38-->
            var parseDayinYearFormat = d3.time.format('%j').parse;
            var parseHourFormat = d3.time.format('%H').parse;
            var parseMinuteFormat = d3.time.format('%M').parse;

            <!-- add the objects-->
            var circles = svg.selectAll("circle")
                .data(data)
                .enter()
                .append("circle");
            var circleAttributes = circles
                .attr("cx", function (d) { return +parseDayinYearFormat(d.date);  })
                .attr("cy", function (d) { return +parseHourFormat(d.date)+(parseMinuteFormat(d.date)/60);  })
                .attr("r", function (d)  { return 20.0/(9-d.total); })
                .attr("class", function (d) {if (d.w>d.total-d.w) {return "cr"} else { return "cb" }});

但是 d3 表现不佳:cx 和 cy 变成 NaN,并且 d3 给出错误 Uncaught TypeError: n.apply is not a function

请帮忙。

最佳答案

您需要使用单个格式对象解析整个字符串。您无法通过一系列解析来解析字符串。

使用d3 version 3.x documentation我想出了以下内容,适用于您的示例。

var datestring = '24-8-2016 9:47:38';
var format = d3.time.format('%-d-%-m-%Y %-H:%-M:%-S');

console.log(format.parse(datestring))
// "2016-08-24T13:47:38.000Z" // (my time zone is UTC-4)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

请注意,由于您的示例 24-8-2016 9:47:38 有许多字段没有显示零填充,因此我在 % 和说明符,即 %-d,告诉 d3 开头可能没有零。

另请注意,在您的示例中,不可能 24 是一年中的某一天,介于 1 和 366 之间:24 显然只是一天,对吗?

但是,从您的代码片段来看,您只想从字符串中提取日期、小时和分钟。对于这个简单的目的,d3.time.format 可能有点过头了,因为它给了你一个 Date对象,然后您必须解析该对象以提取天/小时/分钟。考虑使用正则表达式来完成此任务。

关于date - d3.min.js 给出 Uncaught TypeError : n. apply 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39087601/

相关文章:

python - 如何将文本文件中的某些单词大写?

javascript - 如何使用 javascript 将日期设置为 1/1/0001

javascript - 如何将 JSON 日期显示到 javascript 谷歌图表

ruby-on-rails - ruby/rails 中的日期范围查询

javascript - 将多边形添加到 d3 voronoi 导致错误

javascript - D3.js 输出存储在数据库中

python - 通过使用 Python 分成多行来限制字符串宽度

ruby - 如何在新的一年到来时重新计算值,Ruby

javascript - d3 仅读取 csv 的第一个属性

javascript - json 值中的单引号