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