gpt4 book ai didi

javascript - %H :%M:%S strings to timespan? 有什么好的转换方法

转载 作者:行者123 更新时间:2023-11-30 11:40:19 26 4
gpt4 key购买 nike

我有一个数据集,其中大部分数据点都是 H:M:S 格式,例如 20:59:59,显示了使用的时间跨度个别运动员在不同的圈数。

对于 D3.js,将其转换为时间跨度(即秒数)的最佳方法是什么?

我尝试了 parser = d3.timeParse("%H:%M:%S"); 但它似乎是非常错误的..

最佳答案

如果您使用的是 D3 3.x,那么您可以构建一个合适的解析器:

var parser=d3.time.format("%H:%M:%S");

或者如果您使用的是 D3 4.x:

var parser=d3.timeParse("%H:%M:%S");

无论哪种方式,您都可以像这样将数据点转换为 JS Date 对象:

var t1 = parser.parse("20:59:59");
var t2 = parser.parse("21:02:13");

你可以通过减去这两个时间实例之间的耗时,例如:

var elapsed = t2 - t1; /* Returns 134000 = 134 seconds */

elapsed 将是经过的毫秒数。

有效的原因是 Date 对象提供了一个 valueOf() 方法,该方法返回自 1970 年 1 月 1 日以来经过的毫秒数。减去日期对象会自动调用 valueOf() 并减去返回值。

请注意,如果您正在解析的时间字符串不包含日期部分,那么如果开始时间和结束时间不在同一天,您将遇到问题。

编辑:

从评论中可以清楚地看出,您使用的时间已经是单圈持续时间,采用 H:M:S 格式,您希望将它们转换为秒。这不需要 D3,这很容易:

var components = /^(\d+):(\d+):(\d+)$/.exec("20:59:59");
var elapsedSecs = components[1]*3600+components[2]*60+components[3];

关于javascript - %H :%M:%S strings to timespan? 有什么好的转换方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940685/

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