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