Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
如何在JavaScript中向HH:MM:SS添加分钟数?_Javascript_String_Date_Time_Datetime Conversion - Fatal编程技术网

如何在JavaScript中向HH:MM:SS添加分钟数?

如何在JavaScript中向HH:MM:SS添加分钟数?,javascript,string,date,time,datetime-conversion,Javascript,String,Date,Time,Datetime Conversion,我想在HH:MM:SS(字符串类型)中添加分钟(整数类型) 例如: let min = 125; let time = "10:00:00"; Result=“12:05:00”首先必须解析文本,然后创建日期对象,然后添加125分钟(以毫秒为单位),最后但并非最不重要的是,您可以格式化创建的日期: 设最小值=125; 让[hh,mm,ss]=“10:00:00”.split(“:”).map(s=>parseInt(s,10)); const d=新日期(); d、 设定小时数(hh); d

我想在HH:MM:SS(字符串类型)中添加分钟(整数类型)

例如:

let min = 125;
let time = "10:00:00";

Result=“12:05:00”

首先必须解析文本,然后创建日期对象,然后添加125分钟(以毫秒为单位),最后但并非最不重要的是,您可以格式化创建的日期:

设最小值=125;
让[hh,mm,ss]=“10:00:00”.split(“:”).map(s=>parseInt(s,10));
const d=新日期();
d、 设定小时数(hh);
d、 设置分钟(毫米);
d、 设置秒(ss);
const result=新日期(d.getTime()+125*60*1000);
控制台信息(结果);//结果是具有正确时间的日期
//格式化输出:
const dateTimeFormat=new Intl.dateTimeFormat('de'{
年份:'数字',
月份:“2位”,
日期:“两位数”,
小时:“2位”,
分钟:“两位数”,
第二个:“2位”,
});
常量[,,,,,{value:hour},,{value:minute},,{value:second}]=dateTimeFormat.FormatParts(结果);
console.info(`${hour}:${minute}:${second}`)您可以试试这个

设最小值=125;
让时间=“10:00:00”;
日志(addtime(time,min));
功能添加时间(时间,小时){
让时间=时间。拆分(“:”);
//离开这里24小时以上
最小值=最小值%(24*60);
次数[0]=(parseInt(次数[0])+parseInt(分钟/60);
次数[1]=parseInt(次数[1])+min%60;
//此处控制小时和分钟是否达到最大值
如果(times[1]>=60){times[1]=0;times[0]+};
次[0]>=24?次[0]-=24:空;
//如果小于10,则将0置于其前面

时间[0]这里有一个快速函数,可以将分钟添加到时间字符串HH:MM:SS。 不影响秒数,只控制分钟和小时数。 可以改进,但只是一个快速解决方案。 希望能有帮助。 下面有几个测试示例

函数timeAddMinutes(时间,分钟){
var t=time.split(“:”),//转换为数组[hh,mm,ss]
h=数字(t[0]),//获取小时数
m=数字(t[1]);//获取分钟数
m+=min%60;//增量分钟
h+=数学楼层(分钟/60);//增加小时数
如果(m>=60){h++;m-=60}//如果结果分钟数>60,则增加小时数,并以分钟数平衡
return(h+“”)。padStart(2,“0”)+”:“//为HH和MM创建填充有零的字符串
+(m+)。焊盘起始(2,“0”)+:“
+t[2];//原始秒数不变
}  
//=======示例测试=============
console.log(timeAddMinutes('10:00:00',125));/“12:05:00”
console.log(timeAddMinutes('10:47:00',4*60+15));/'15:02:00'
console.log(timeAddMinutes('10:00:00',0));//'10:00:00'
console.log(timeAddMinutes('10:00:00',60+17));//'11:17:00'
console.log(timeAddMinutes('00:30:00',30));//'01:00:00'
console.log(timeAddMinutes('05:45:00',45));/'06:30:00'

控制台日志(timeAddMinutes('10:00:00',60*100+5));//“110:05:00”
一种策略是将值转换为常用组件,如秒,添加值,然后格式化为H:mm:ss。一般函数通常比特殊函数具有更广泛的适用性,因此如果以分钟为数字,则最好在调用中将其重构为字符串,例如

/**添加次数,仅处理正值
**@param{string}t0:h[:mm[:ss]]格式的时间
**@param{string}t1:与t0格式相同的时间
**@以h:mm:ss格式返回t0和t1的{string}总和
**/
函数添加时间(t0,t1){
返回secsToTime(timeToSecs(t0)+timeToSecs(t1));
}
//将H[:mm[:ss]]格式的时间转换为秒
功能timeToSecs(时间){
设[h,m,s]=time.split(':');
返回h*3600+(m|0)*60+(s|0)*1;
}
//以H:mm:ss格式将秒转换为时间
功能秒数时间(秒){

设z=n=>(n请发布您的尝试代码。对于JavaScript中与datetime相关的任何内容,我总是使用momentjs,虽然它易于使用和理解,但它总是很容易完成任务。您是希望获得时间信息还是希望获得以小时、分和秒为单位的持续时间?@Marc in HH:MM:SSEvery answery解决我的问题。感谢allFor的输入“23:00:00”,您将获得“25:05:00”抱歉。试试这个:让min=60*48+10;然后冬季跳转到夏季时间?恐怕非日期解决方案不可靠。但他没有白天时间。只有小时。所以这里不可能有夏季时间。如果他有时间,也可以有白天信息。他只会尝试增加小时。如果他只是尝试在字符串中添加小时,那么夏季时间也会增加给他错误的结果时区也给他错误的结果。@Marc OP是关于给时间加分钟。没有日期的概念。夏令时的问题是特定日期的本地问题,可以通过将时间加到UTC,然后转换为本地来解决。如果将262080分钟加到“10:00:00”(182天),你会得到什么?@Marc您将获得
(262080/60)+10
hours,或4378:00:00。如果你想得到一个持续时间,你的代码是正确的。类似这样。4378h。据我所知,Shubham想得到一个时间作为结果。Shubham应该发表评论,他想知道他的意图是什么。这不是一个我认为是“110:05:00”的时间。更像是一个持续时间110h 5m。@Marc.True。我只是添加了它作为一个例子任何超过23小时的。如果他愿意,他可以将其转换为天。因为我只想从电影长度中获取特定电影放映的结束时间。所以这个答案也解决了我的问题。谢谢因为我只想从电影长度中获取特定电影放映的结束时间。所以这个答案也解决了我的问题。谢谢