如何计算给定时间之前的小时数

时间:2019-04-05 13:46:44

标签: javascript

我的问题是如何计算到达特定时间要经过多少小时和几分钟。我的意思是,如果我们有时间: 15:32,我想计算到05:32(晚上)需要多少小时,在这种情况下应该是14小时32分钟。

由于我真的没有那么多的知识和经验,所以我没有尝试过任何东西,因为我真的不知道从哪里开始。

const curDate = new Date().toLocaleTimeString();
console.log(curDate);

//I only know how to get the current date to string. But what next?

1 个答案:

答案 0 :(得分:0)

要获取直到一天中的某个时间的小时数和分钟数,请执行以下步骤:

  1. 使用当前日期创建日期对象
  2. 使用要搜索的小时和分钟创建日期对象
  3. 获取两个小时之间的时差(如果小于0,则表示该天已经过去,因此请寻找第二天)
  4. 获取两者的分钟数之差(如果小于0,则表示分钟数已经过去,请检查下一个小时)

由于您要从另一个日期中减去某个日期,因此无需进行任何转换(本地=> UTC)

const curDate = new Date(); // Step 1
const night = new Date(0, 0, 0, 5, 32); // Step 2
var hours = night.getHours() - curDate.getHours(); // Step 3a
if (hours < 0) hours += 24; // Step 3b
var minutes = night.getMinutes() - curDate.getMinutes(); // Step 4a
if (minutes < 0) { // Step 4b
  hours -= 1;
  minutes += 60;
}
console.log(["Hours: ", hours, ", Minutes: ", minutes].join(""));

以下是帮助您了解第4步的示例:

  • 08:54-07:56
  • 08-07小时54-56分钟
  • 1小时-2分钟
  • 1小时-1小时=> -2分钟+ 60分钟
  • 0小时58分钟