gpt4 book ai didi

javascript - 为什么 CSV 文件中的日期输出为 NaN?

转载 作者:行者123 更新时间:2023-11-29 10:06:12 24 4
gpt4 key购买 nike

我刚刚在 Lynda.com 上完成了一个视频,但无法获得讲师使用 D3 获得的相同结果。我已经为有问题的文件创建了一个更简单的版本,但它仍然不起作用。当我尝试检索日期时,控制台输出 NaN。

作为 Excel 输出的 CSV 是:

Date,AM
1995-04-16,3.5
1995-04-17,14.0
1995-04-18,10.8

Javascript 文件包含:

d3.csv("bg_test_date_parsing.csv", function(d) {
return { Date: +d.Date, AM: +d["AM"] };
}, function(data) {
console.log(data[1]);
});

Mozilla 的控制台给我:

Object { Date: NaN, AM: 14 }

我无法继续任何项目,因为我不知道从哪里开始正确导入日期。 lynda.com 上的视频一直在播放,但我仍然不知道如何导入和格式化日期。此外,CSV 最初的格式为 16-04-1995 作为示例,从医疗仪器输出,我手动将其输入为显然 D3 可以使用的年月日格式。我已经使用 Google 花了好几个小时才走到这一步,所以我显然缺少一些关键的理解。

最佳答案

+d.Date 未按您希望的方式工作。在 16-04-1995 上调用 + 会导致 NaN。您不能将该字符串转换为这样的数字。

您可以像这样转换字符串,var myDate = new Date('04-16-1995')

不幸的是,您的格式是日-月-年,而 javascript 需要月-日-年。

请参阅此问题以了解如何处理:

Convert dd-mm-yyyy string to date


更新 正如@GerardoFurtado 在他的评论中指出的那样,d3 库有一些内置的日期解析选项,可以将日期转换为不同的格式。查看他评论中的链接。

使用 d3,您可以像这样将字符串转换为日期:

var myDate = d3.timeParse("%d-%m-%Y")('16-04-1995')

或者,在你的循环中:

日期:d3.timeParse("%d-%m-%Y")(d.Date)

关于javascript - 为什么 CSV 文件中的日期输出为 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com