如何知道2小时与时间之间的时间增加百分比。 js或纯javascript

问题描述 投票:0回答:1

我想知道有多少时间增加了2个小时。

我有一个代码,用于查找自当天开始以来超过100的百分比,但我不知道如何在2小时内完成。

使用这两个javascript代码选项计算从给定小时开始24小时的时间百分比对我来说很有效。

var time_begin = '08:00:00';       
var a = time_begin.split(':');
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
var start_time = Math.round((seconds/(24*60*60))*100);    

var now = new Date(...);
var startOfDay = new Date(now.getTime());
startOfDay.setHours(0,0,0,0);
var percent = (now.getTime()-startOfDay.getTime()) / (1000*60*60*24)

但我不想知道这是多长时间24小时。我想知道的是2小时之间增加或减少时间的百分比。

递增%

var originalTime = 13:22:15
var durationToincrease = 00:18:09
var finalDuration = 13:40:24

增加的百分比是:xx%。

或%减少

var originalTime = 13:05:01
var durationToincrease = 00:14:09
var finalDuration = 12:50:52

减少的%是:xx%。

非常感谢你的帮助,如果可能的话,我可以用纯JavaScript或javascript库来做。 js或其他。

一声问候

javascript jquery momentjs
1个回答
0
投票

您的原始代码依赖于能够将时间戳转换为秒。如果您将时间作为字符串,则可以独立于Date对象执行此操作:

function timestamp_to_seconds(timestamp) {
    var [hours, minutes, seconds] = timestamp.split(':').map((t) => parseInt(t, 10));
    return seconds + 60 * minutes + 60 * 60 * hours;
}

获得所有信息后,很容易找出比率:

var original_seconds = timestamp_to_seconds('13:22:15');
var duration_seconds = timestamp_to_seconds('00:18:09');
var new_seconds = original_seconds + duration_seconds;

var ratio = new_seconds / original_seconds;

ratio - 1是从original_secondsnew_seconds的增加(或减少)百分比。

© www.soinside.com 2019 - 2024. All rights reserved.