gpt4 book ai didi

JavaScript 时差

转载 作者:行者123 更新时间:2023-11-27 22:41:16 25 4
gpt4 key购买 nike

我试图简单地计算 5:30:00 - 2:30:00 的时差。显然这应该导致 3:00:00

但是当我在控制台中执行以下代码时

var a = new Date(0,0,0,5,30,0)
var b = new Date(0,0,0,2,30,0)
var c = new Date(a-b)
console.log(c.getHours() + ":" + c.getMinutes() + ":" + c.getSeconds())

结果是 4:00:00。

是什么导致了这个问题?我该如何处理?

Weird

最佳答案

Date 构造函数不适合表示或处理时间跨度。

JS 中没有内置的处理时间跨度的工具,因此您需要自己实现一个。

幸运的是,时间字符串 -> 秒转换很简单:

const timeToSec = time => time.split(':').reduce((acc, v) => acc * 60 + parseInt(v), 0);

然后你可以处理秒:

const diffInSeconds = timeToSec('5:30:00') - timeToSec('2:30:00'); // 10800

秒 -> 时间字符串的反向转换也很简单(而且它只是 timeToSec 实现的简单反转),我将其作为家庭作业.

关于JavaScript 时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731828/

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