Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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计算工作时间的差异_Javascript_Html - Fatal编程技术网

用javascript计算工作时间的差异

用javascript计算工作时间的差异,javascript,html,Javascript,Html,Desc: 我有:(在桌子上) 2列,其中包含要输入的数据: a) 开始 b) 结束。(信息:结束必须大于开始才能正常工作) 2列数据为计算值/常数: a) 实际(结束-开始) b) 规范(const) 包含我试图计算的数据的两列: a) 盈余, b) 不足 代码操作:(现在它正在工作) 用户输入以下字段: a) 开始 b) 结束(必须大于开始)[跳过] 场是计算出来的 a) 实际值=结束-开始 字段为conts a) 规范的 我努力实现的目标: 填写以下字段: a) 盈余(如何?=>

Desc: 我有:(在桌子上)

  • 2列,其中包含要输入的数据:

    a) 开始

    b) 结束。(信息:结束必须大于开始才能正常工作)

  • 2列数据为计算值/常数:

    a) 实际(结束-开始)

    b) 规范(const)

  • 包含我试图计算的数据的两列:

    a) 盈余,

    b) 不足

代码操作:(现在它正在工作)

  • 用户输入以下字段:

    a) 开始

    b) 结束(必须大于开始)[跳过]

  • 场是计算出来的

    a) 实际值=结束-开始

  • 字段为conts

    a) 规范的

我努力实现的目标:

  • 填写以下字段:

    a) 盈余(如何?=>盈余=实际标准)(如果实际>标准)

    b) 缺陷(如何?=>缺陷=标准实际值)(如果实际值<标准值)

我尝试了什么?:

功能差异(开始、结束){
start=start.split(“:”);
end=end.split(“:”);
const startDate=新日期(0,0,0,开始[0],开始[1],0);
const endDate=新日期(0,0,0,end[0],end[1],0);
让diff=endDate.getTime()-startDate.getTime();
恒时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
常数分钟=数学楼层(差异/1000/60);
返回(小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟;
}
document.querySelector('table')。addEventListener('change',函数(e){
const classList=e.target.classList
if(classList.contains('start')| | classList.contains('end')){
//检索相关的输入
const tr=e.target.parentNode.parentNode
常量[开始、结束、实际、规范、剩余、不足]=[…tr.queryselectoral('.start、.end、.actual、.normalized、.盈余、.definance')]
常量值=diff(start.value,end.value)
实际值=实际值
}
})
//我试过:
/*标准(价值)
{
常量值=diff\u act\u nor()
剩余价值=价值
}
否则如果(实际值<标准值)
{
const value_na=diff_nor_act()
不足。价值=价值
}
否则{
//无所事事
}
}
功能差异或行为(实际、规范){
实际值=实际值。拆分(“:”);
规范性=规范性。拆分(“:”);
const actualDate=新日期(0,0,0,实际[0],实际[1],0);
const normativeDate=新日期(0,0,0,标准[0],标准[1],0);
设diff=normativeDate.getTime()-actualDate.getTime();
恒时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
常数分钟=数学楼层(差异/1000/60);
返回(小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟;
功能差异行为(实际、规范){
实际值=实际值。拆分(“:”);
规范性=规范性。拆分(“:”);
const actualDate=新日期(0,0,0,实际[0],实际[1],0);
const normativeDate=新日期(0,0,0,标准[0],标准[1],0);
让diff=actualDate.getTime()-normativeDate.getTime();
恒时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
常数分钟=数学楼层(差异/1000/60);
返回(小时<9?“0”:“)+小时+”:“+(分钟<9?“0”:“)+分钟;
---评论---------------->*/

开始
结束
实际的
规范的
盈余
缺乏
我添加了

function diffMs(start, end) {
  return +start.split(":").join('') - +end.split(":").join('');
}
此函数可以帮助您出于逻辑目的计算差异

我更新了一个演示:

功能差异(开始、结束){
start=start.split(“:”);
end=end.split(“:”);
const startDate=新日期(0,0,0,开始[0],开始[1],0);
const endDate=新日期(0,0,0,end[0],end[1],0);
让diff=endDate.getTime()-startDate.getTime();
恒时=数学楼层(差异/1000/60/60);
差异-=小时*1000*60*60;
常数分钟=数学楼层(差异/1000/60);
返回(小时)