我正在尝试使用 d3.timeFormat() 将格式如下的日期转换:2017-09-19T00:00:00 转换为更具可读性的:2017 年 9 月 19 日。我尝试了以下多种变体没有运气的代码:
.append('td')
.text(function (d, i) {
if (i === 0) {
var parseDate = d3.timeFormat("%m %d, %Y");
return parseDate(d.value)
}
else {
return d.value;
}
});
这是它返回的内容:0NaN NaN NaN。
我猜测我拥有的值是一个字符串,我需要将其转换为日期/时间对象,然后可以根据需要呈现/格式化该对象,但我不知道如何使其工作?话又说回来,我可能是错的,因为我是一名用户体验专家,而不是一名程序员。
非常感谢任何解释我应该如何解决这个问题的帮助。谢谢。
最佳答案
是的,您需要将字符串转换为日期。另外,我认为您需要 %b
表示缩写月份:
var aDate = new Date(d.value)
var parseDate = d3.timeFormat("%b %d, %Y");
console.log("Date: ", parseDate(aDate))
// Prints:
// Date: "Sept 18, 2017"
关于javascript - D3 v4 - 尝试将我的数据文件 '2017-09-19T00:00:00' 中这样格式化的日期转换为更易读的 'Sep 19, 2017',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46571127/