如何在javascript中以hh:mm:ss格式增加或减少时间百分比

如何在javascript中以hh:mm:ss格式增加或减少时间百分比,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我对javascript有问题。我是新来的,所以我提前感谢你的帮助 我有一个表格,其中有一个hh:mm:ss格式的日期,我想通过输入字段按百分比增加或减少hh:mm:ss。百分比可以是整数或十进制数 也就是说,在一小时内“举例”。 17:22:14我想增加6%,或者如果是14.3%的小数,或者是相同的值,但是是负数,我想。E跌幅为百分之六或百分之十四点三 我举了一个例子来说明某个小时的增长百分比,但我不能做我想做的事情 在PHP中的这个例子中,我知道日期的百分比,但我不想知道,我想知道如何在给

我对javascript有问题。我是新来的,所以我提前感谢你的帮助

我有一个表格,其中有一个hh:mm:ss格式的日期,我想通过输入字段按百分比增加或减少hh:mm:ss。百分比可以是整数或十进制数

也就是说,在一小时内“举例”。 17:22:14我想增加6%,或者如果是14.3%的小数,或者是相同的值,但是是负数,我想。E跌幅为百分之六或百分之十四点三

我举了一个例子来说明某个小时的增长百分比,但我不能做我想做的事情


在PHP中的这个例子中,我知道日期的百分比,但我不想知道,我想知道如何在给定时间和javascript中增加或减少百分比

<?php

$date = '08:53:34';
$parts = explode(':', $date);
$secs = $parts[0] * 3600 + $parts[1] * 60 + $parts[2];

// day has 86 400 seconds
echo $secs / 864 . '%'; // return 37.05% (you can round it)

?>

提前感谢

您可以使用standart JS object Date()解决您的问题; 算法很简单:

1) 将日期对象设为当前日期或所需日期。(我的代码中的今天变量)

2) 制作结束日期的日期,到该日期的百分比,我们将查看

3) 只是想看看今天和明天的区别

4) 现在,我们收到了到明天(或其他日期)为止的剩余百分比

5) 如果您需要通过百分比,请在使用结果之前,在最后一个变量中使用100-((明天-今天)/一天*100)

6) 增加/减少使用示例

例如:

const ONE_DAY = 8.64e7; // 86400000 milliseconds
let time = "08:54:33"; // Your time where your looking %
let today = new Date(); 
today.setHours(time.split(":")[0], time.split(":")[1], time.split(":")[2]); // Set time from what we will looking %

let tomorrow = new Date(Date.now() + ONE_DAY).setHours("0", "0", "0");
let percent = ((tomorrow - today) / ONE_DAY * 100).toFixed("2") + "%";

// it's for increase/decrease
const HOUR = 3.6e6; // 360000
const MINUTE = 6e4; // 60000
const SECOND = 1e3; // 1000
let incPercent = 0.03; // it's mean 3%
let increased = new Date(today.getTime() + (incPercent * HOUR));

hh:mm:ss不是一个日期,只是一个简单的时钟时间。从午夜开始计算秒数的方法是正确的。不过,问题是溢出,假设23:55:50+25%将在第二天的某个地方出现,并且不会以这种方式工作。你可以考虑另一个恢复日期的方法。是的,如果重点是我已经做了倒退。我必须看看我如何增加或减少时间你也可以放一个滑块,增加最大百分比。实际上,在最多10:00:00的时间内,增加量不会超过30%,所以我认为溢出量不会到达。谢谢,我将进行测试并告诉你,谢谢!!
const ONE_DAY = 8.64e7; // 86400000 milliseconds
let time = "08:54:33"; // Your time where your looking %
let today = new Date(); 
today.setHours(time.split(":")[0], time.split(":")[1], time.split(":")[2]); // Set time from what we will looking %

let tomorrow = new Date(Date.now() + ONE_DAY).setHours("0", "0", "0");
let percent = ((tomorrow - today) / ONE_DAY * 100).toFixed("2") + "%";

// it's for increase/decrease
const HOUR = 3.6e6; // 360000
const MINUTE = 6e4; // 60000
const SECOND = 1e3; // 1000
let incPercent = 0.03; // it's mean 3%
let increased = new Date(today.getTime() + (incPercent * HOUR));