javascript - 按开始和结束时间计算持续时间
问题描述
我有这个 json :
{
endTime: "14:00:00"
startTime: "12:00:00"
}
我需要计算持续时间,所以我这样做了:
let duration = endTime.slice(0, -3) - startTime.slice(0, -3);
但没有按预期工作。我有一个 js 错误:左手必须是类型号
对此有想法吗?
提前谢谢。
解决方案
好的,我正在考虑您只接收具有 endTime 和 startTime 属性的对象,而不是使用数组。
在以下代码块中,您可以将字符串转换为日期并使用它们进行计算。在这个例子中,我只是减去了 endDate - startDate 以得到毫秒的差异,然后我转换为秒、分钟和小时。
const data = {
endTime: '14:00:00',
startTime: '12:00:00',
}
// separates the string in hours, minutes and seconds
const [startHours, startMinutes, startSeconds] = data.startTime.split(':')
const [endHours, endMinutes, endSeconds] = data.endTime.split(':')
// creates a Date instance to work with
const startDate = new Date()
const endDate = new Date()
// sets hour, minutes and seconds to startDate
startDate.setHours(startHours)
startDate.setMinutes(startMinutes)
startDate.setSeconds(startSeconds)
// sets hour, minutes and seconds to endDate
endDate.setHours(endHours)
endDate.setMinutes(endMinutes)
endDate.setSeconds(endSeconds)
const differenceInMilliseconds = endDate - startDate
const differenceInSeconds = differenceInMilliseconds / 1000
const differenceInMinutes = differenceInSeconds / 60
const differenceInHours = differenceInMinutes / 60
console.log(differenceInHours) // outputs 2 hours
推荐阅读
- sql - 无法在 postgresql 中创建函数
- twitter - LinqToTwitter 我无法捕捉推文
- java - Java 根据 Sum 查找最接近的对是 ArrayIndexOutOfBoundsException
- python-3.x - 用于自定义 Python 脚本和 PyTest 的 Yocto Bitbake 配方
- java - NetBeans IDE 未运行项目或文件
- flutter - 在 SLOW INTERNET 上构建应用程序,这可能吗?
- r - 计算字符串序列的平均值,然后删除大于 R 中平均值的 2SD 的任何内容
- performance - Docker 对 CPU 密集型代码的性能影响 50%
- python - 为什么这不能将我连接到我的服务器?
- python-3.x - 我试图在我的命令提示符下运行 Python