Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一起添加2次JavaScript_Javascript - Fatal编程技术网

一起添加2次JavaScript

一起添加2次JavaScript,javascript,Javascript,希望在javascript中添加时间 我从来没有写过任何javascript,因此我正在努力前进 我必须加上说4:00(4小时)到12:44(当前时间)这在javascript中可能吗 答案应返回16:44 如果是的话,我会怎么做 谢谢看一看moment.js——一个管理各种时间相关功能的优秀库- 稍后补充回答: 你提到你是一个JavaScript新手,所以这里有一个简单的使用moment.js解决问题的示例-这个示例假设文件和moment.js在同一个文件夹中。查看moment.js上的文档,

希望在javascript中添加时间

我从来没有写过任何javascript,因此我正在努力前进

我必须加上说
4:00
(4小时)到
12:44
(当前时间)这在javascript中可能吗

答案应返回
16:44

如果是的话,我会怎么做


谢谢

看一看moment.js——一个管理各种时间相关功能的优秀库-

稍后补充回答:

你提到你是一个JavaScript新手,所以这里有一个简单的使用moment.js解决问题的示例-这个示例假设文件和moment.js在同一个文件夹中。查看moment.js上的文档,了解所有格式选项。祝你好运

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Add Time</title>
<script src="moment.js"></script>
</head>

<body>

   <script>

   //add 4 hours to the stated time
   var theFutureTime = moment().hour('12').minute('44').add(4,'hours').format("HH:mm");

   console.log(theFutureTime);  // prints 16:44

  </script>

</body>

加时
//在规定时间的基础上增加4小时
var theFutureTime=moment().hour('12')。minute('44')。添加(4,'hours')。格式(“HH:mm”);
console.log(未来时间);//打印16:44

如果您将其分解为几个小的辅助函数,这并不难:

// Convert a time in hh:mm format to minutes
function timeToMins(time) {
  var b = time.split(':');
  return b[0]*60 + +b[1];
}

// Convert minutes to a time in format hh:mm
// Returned value is in range 00  to 24 hrs
function timeFromMins(mins) {
  function z(n){return (n<10? '0':'') + n;}
  var h = (mins/60 |0) % 24;
  var m = mins % 60;
  return z(h) + ':' + z(m);
}

// Add two times in hh:mm format
function addTimes(t0, t1) {
  return timeFromMins(timeToMins(t0) + timeToMins(t1));
}

console.log(addTimes('12:13', '01:42')); // 13:55
console.log(addTimes('12:13', '13:42')); // 01:55
console.log(addTimes('02:43', '03:42')); // 06:25
//将hh:mm格式的时间转换为分钟
函数timeToMins(时间){
var b=时间分割(“:”);
返回b[0]*60++b[1];
}
//将分钟转换为hh:mm格式的时间
//返回值的范围为00到24小时
功能timeFromMins(分钟){

函数z(n){return(n使用
moment.js
可以将
hh:mm
转换为分钟并添加它们

示例:

moment.duration("02:45").asMinutes() + moment.duration("02:15").asMinutes()
结果:
300分钟

因此,您可以将分钟转换为
hh:mm

function timeConvert1(data) {
  var minutes = data % 60;
  var hours = (data – minutes) / 60;  
  return (hours + “:” + minutes);
}

用于添加时间格式字符串数组(包括秒和不计算天数)

例如:

输入:
times=['00:00:10','00:24:00']

输出
00:24:10

// Add two times in hh:mm:ss format
function addTimes(times = []) {

    const z = (n) => (n < 10 ? '0' : '') + n;

    let hour = 0
    let minute = 0
    let second = 0
    for (const time of times) {
        const splited = time.split(':');
        hour += parseInt(splited[0]);
        minute += parseInt(splited[1])
        second += parseInt(splited[2])
    }
    const seconds = second % 60
    const minutes = parseInt(minute % 60) + parseInt(second / 60)
    const hours = hour + parseInt(minute / 60)

    return z(hours) + ':' + z(minutes) + ':' + z(seconds)
}
//以hh:mm:ss格式添加两次
函数addTimes(times=[]){
常数z=(n)=>(n<10?'0':'')+n;
设小时=0
让分钟=0
设秒=0
for(持续时间次){
const splited=time.split(“:”);
小时+=parseInt(拆分为[0]);
分钟+=parseInt(拆分为[1])
second+=parseInt(拆分为[2])
}
常数秒=秒%60
const minutes=parseInt(分钟%60)+parseInt(秒/60)
常数小时=小时+解析整数(分钟/60)
返回z(小时)+':'+z(分钟)+':'+z(秒)
}

这不是一个基本的数学吗?我需要它来使用当前时间。我在jsfiddle.net/中尝试了一些方法,但没有成功。如果当前时间是
12:44
,你希望答案是什么?加上13个小时,时间不一定是4:00,而是一个字段值。+1来自我,尽管直接的pr您正在处理的问题并不是太棘手。时间和日期在JavaScript中通常是出了名的棘手。如果是学习练习,一定要手工创建代码。但如果是生产代码,我只需要使用日期时间库。momentjs很好,或者可以作为替代。t0和t1来自哪里?它们是调用中传递的时间,请参见t他举例说明。addTimes(“142:47”,“22:11”);这样做的结果是“20:58”,这是不正确的。它应该是这样工作的,还是我在这里遗漏了什么?@MinasieShibeshi根据代码注释,返回的时间范围是00:00到24:00。如果您不想这样,请从h作业中删除
%24
。@RobG我明白了,谢谢您的澄清,如果您不喜欢timeConvert1函数,您可以使用:moment.duration(sum,'minutes').hours()和moment.duration(sum,'minutes').minutes()可以得到小时和分钟。您可以使用(“0”+数字).slice(-2)将1,2,…,23转换为01,02,…,22,23,例如:(“0”+(矩.duration(sum,'minutes').hours()).slice(-2)+(“0”+矩.duration duration(sum,'minutes').minutes()).slice(-2)excellent,tks)。我的问题解决了