gpt4 book ai didi

javascript - D3v4 : d3. timeParse 失败,UNIX 纪元秒 (%s)

转载 作者:可可西里 更新时间:2023-11-01 02:23:05 24 4
gpt4 key购买 nike

我的数据集包含 UNIX 时间戳,例如“1509392160”。我似乎无法使用返回 null 的 d3.timeParse("%s") 来解析它们。

d3.timeFormat 检查反向过程也让我失败了。官方示例和所有其他格式字符串都有效:

var formatTime = d3.timeFormat("%B %d, %Y");
formatTime(new Date); // -> "June 30, 2015"

但是,格式化为 UNIX(毫秒)秒只会为“%s”和“%Q”返回“s”或“Q”:

var formatTime = d3.timeFormat("%s");
formatTime(new Date); // -> "s"

顺便说一句,使用 D3 v4.11.0。我错过了什么?

最佳答案

我只使用 d3-time-format 模块运行这段代码,没有遇到任何问题:

var parse = d3.timeParse("%s");
var time = parse(1509392160);

console.log(time);

var format = d3.timeFormat("%s");
time = format(Date.now());

console.log(time);
<script src="https://d3js.org/d3-time-format.v2.min.js"></script>

但是,正如您所发现的,这不适用于 d3 v4.11(也不适用于 d3 v4 的任何其他版本)。似乎 d3-time-format 最近才添加了支持解析 UNIX 时间戳的功能,并且是 released on October 9, 2017 .

“%s”和“%Q”选择器与“%f”、“%u”和“%V”一起添加到最新版本中,这些其他选择器在 v4 中似乎也不起作用。 11:

console.log(d3.timeParse("%u")(1));  // day of week
console.log(d3.timeParse("%V")(25)); // week of year
console.log(d3.timeParse("%f")(100));// microseconds

console.log("For Comparison, %Y:");
console.log(d3.timeParse("%Y")(2017)); // Year
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.11.0/d3.min.js"></script>

与此同时,d3 v4.11 似乎是 released on October 3rd, 2017 .因此,最新的 d3 核心库在这方面似乎已经过时了。我想很快就会有一个更新版本。

虽然您应该能够将核心库用于其他所有内容,并将模块用于时间格式化/解析以获得所需的功能(直到无论如何出现更新):

var parse = d3.timeParse("%Q");
var time = parse(1509392160);

d3.select("body").append("p")
.html(time);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.11.0/d3.min.js"></script>
<script src="https://d3js.org/d3-time-format.v2.min.js"></script>

关于javascript - D3v4 : d3. timeParse 失败,UNIX 纪元秒 (%s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043555/

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